更新UI 未更新广告 1.0.1(2)
This commit is contained in:
parent
104cb9e63f
commit
8bfb74f7bc
@ -16,7 +16,12 @@
|
|||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/AppTheme"
|
||||||
tools:targetApi="31">
|
tools:targetApi="31">
|
||||||
|
<activity
|
||||||
|
android:name=".activity.ShowKeyboardActivity"
|
||||||
|
android:exported="false" />
|
||||||
|
<activity
|
||||||
|
android:name=".activity.WebActivity"
|
||||||
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.SplashActivity"
|
android:name=".activity.SplashActivity"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
|||||||
121
app/src/main/assets/privacy.html
Normal file
121
app/src/main/assets/privacy.html
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Privacy Policy</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
h1, h2 {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
margin: 10px 0;
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Privacy Policy</h1>
|
||||||
|
<p><strong>Date:</strong> June 26, 2024</p>
|
||||||
|
|
||||||
|
<p>We provide this Privacy Policy to help you understand how we collect, use, and disclose
|
||||||
|
information, including what you may provide to us or that we obtain from our products and
|
||||||
|
services. We treat your privacy very seriously. Your privacy is important to us.</p>
|
||||||
|
|
||||||
|
<h2>Information Collection and Use</h2>
|
||||||
|
<p>For a better experience, while using our Service, we may require you to provide us with certain
|
||||||
|
personally identifiable information, such as users' name, address, location, pictures, etc. The
|
||||||
|
information that we request will be retained on your device and is not collected or retained by
|
||||||
|
us in any way and used as described in this privacy policy.</p>
|
||||||
|
<p>The app does use third-party services that may collect information used to identify you.</p>
|
||||||
|
<p>Please refer to the privacy policy of the third-party service provider used by the
|
||||||
|
application:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Google Play Services</li>
|
||||||
|
<li>Google Analytics for Firebase</li>
|
||||||
|
<li>Firebase Crashlytics</li>
|
||||||
|
<li>Unity</li>
|
||||||
|
<li>AppLovin</li>
|
||||||
|
<li>Pangle</li>
|
||||||
|
<li>Mintegral</li>
|
||||||
|
<li>Bigo</li>
|
||||||
|
<li>Ironsource</li>
|
||||||
|
<li>Vungle</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Log Data</h2>
|
||||||
|
<p>We want to inform you that whenever you use our Service, in case of an error in the app, we
|
||||||
|
collect data and information (through third-party products) on your phone called Log Data. This
|
||||||
|
Log Data may include information such as your device Internet Protocol (“IP”) address, device
|
||||||
|
name, operating system version, the configuration of the app when utilizing our Service, the
|
||||||
|
time and date of your use of the Service, and other statistics.</p>
|
||||||
|
|
||||||
|
<h2>Cookies</h2>
|
||||||
|
<p>Cookies are files with a small amount of data that are commonly used as anonymous unique
|
||||||
|
identifiers. These are sent to your browser from the websites that you visit and are stored on
|
||||||
|
your device's internal memory.</p>
|
||||||
|
<p>This Service does not use these “cookies” explicitly. However, the app may use third-party code
|
||||||
|
and libraries that use “cookies” to collect information and improve their services. You have the
|
||||||
|
option to either accept or refuse these cookies and know when a cookie is being sent to your
|
||||||
|
device. If you choose to refuse our cookies, you may not be able to use some portions of this
|
||||||
|
Service.</p>
|
||||||
|
|
||||||
|
<h2>Service Providers</h2>
|
||||||
|
<p>We may employ third-party companies and individuals due to the following reasons:</p>
|
||||||
|
<ul>
|
||||||
|
<li>To facilitate our Service</li>
|
||||||
|
<li>To provide the Service on our behalf</li>
|
||||||
|
<li>To perform Service-related services</li>
|
||||||
|
<li>To assist us in analyzing how our Service is used</li>
|
||||||
|
</ul>
|
||||||
|
<p>We want to inform users of this Service that these third parties have access to their Personal
|
||||||
|
Information. The reason is to perform the tasks assigned to them on our behalf. However, they
|
||||||
|
are obligated not to disclose or use the information for any other purpose.</p>
|
||||||
|
|
||||||
|
<h2>Security</h2>
|
||||||
|
<p>We value your trust in providing us your Personal Information, thus we are striving to use
|
||||||
|
commercially acceptable means of protecting it. But remember that no method of transmission over
|
||||||
|
the internet, or method of electronic storage is 100% secure and reliable, and we cannot
|
||||||
|
guarantee its absolute security.</p>
|
||||||
|
|
||||||
|
<h2>Links to Other Sites</h2>
|
||||||
|
<p>This Service may contain links to other sites. If you click on a third-party link, you will be
|
||||||
|
directed to that site. Note that these external sites are not operated by us. Therefore, we
|
||||||
|
strongly advise you to review the Privacy Policy of these websites. We have no control over and
|
||||||
|
assume no responsibility for the content, privacy policies, or practices of any third-party
|
||||||
|
sites or services.</p>
|
||||||
|
|
||||||
|
<h2>Children’s Privacy</h2>
|
||||||
|
<p>These Services do not address anyone under the age of 13. We do not knowingly collect personally
|
||||||
|
identifiable information from children under 13 years of age. In the case we discover that a
|
||||||
|
child under 13 has provided us with personal information, we will immediately delete this from
|
||||||
|
our servers. If you are a parent or guardian and you are aware that your child has provided us
|
||||||
|
with personal information, please contact us so that we will be able to take the necessary
|
||||||
|
actions.</p>
|
||||||
|
|
||||||
|
<h2>Changes to This Privacy Policy</h2>
|
||||||
|
<p>We may update our Privacy Policy from time to time. Thus, you are advised to review this page
|
||||||
|
periodically for any changes. We will notify you of any changes by posting the new Privacy
|
||||||
|
Policy on this page.</p>
|
||||||
|
|
||||||
|
<h2>Privacy Questions</h2>
|
||||||
|
<p>We may update the Privacy Policy from time to time. When we change the policy in a material way,
|
||||||
|
a notice will be posted on our website along with the updated Privacy Policy.</p>
|
||||||
|
<p>If you have any questions or concerns about our Privacy Policy or data processing, please contact
|
||||||
|
us: <a href="mailto:saleemjeeta2@gmail.com">saleemjeeta2@gmail.com</a>.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -29,10 +29,12 @@ public class CoolKeyboardSkin extends Application {
|
|||||||
private static Context context;
|
private static Context context;
|
||||||
public static List<Mydata> mydataList;
|
public static List<Mydata> mydataList;
|
||||||
private static boolean insert;
|
private static boolean insert;
|
||||||
|
private static boolean init;
|
||||||
private SharedPreferences sp;
|
private SharedPreferences sp;
|
||||||
private SharedPreferences.Editor editor;
|
private SharedPreferences.Editor editor;
|
||||||
private static final String PRE_NAME = "Mypre";
|
public static final String PRE_NAME = "Mypre";
|
||||||
private static final String PRE_KEY = "isinsert";
|
public static final String PRE_KEY = "isinsert";
|
||||||
|
public static final String PRE_KEY_INIT = "isinit";
|
||||||
public static List<Otherdata> alllist = new ArrayList<>();
|
public static List<Otherdata> alllist = new ArrayList<>();
|
||||||
public static List<Otherdata> lovelist = new ArrayList<>();
|
public static List<Otherdata> lovelist = new ArrayList<>();
|
||||||
public static List<Otherdata> coollist = new ArrayList<>();
|
public static List<Otherdata> coollist = new ArrayList<>();
|
||||||
@ -128,9 +130,27 @@ public class CoolKeyboardSkin extends Application {
|
|||||||
|
|
||||||
initData();
|
initData();
|
||||||
|
|
||||||
|
initKey();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initKey() {
|
||||||
|
sp = getSharedPreferences(PRE_NAME, MODE_PRIVATE);
|
||||||
|
init = sp.getBoolean(PRE_KEY, false);
|
||||||
|
if (!init) {
|
||||||
|
|
||||||
|
Mytool.runIO(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
init = true;
|
||||||
|
editor = sp.edit();
|
||||||
|
editor.putBoolean(PRE_KEY, init);
|
||||||
|
editor.apply();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void initSdk() {
|
private void initSdk() {
|
||||||
|
|
||||||
// ATSDK.integrationChecking(context);
|
// ATSDK.integrationChecking(context);
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.key.coolkeyboard.activity;
|
package com.key.coolkeyboard.activity;
|
||||||
|
|
||||||
import androidx.activity.EdgeToEdge;
|
import androidx.activity.EdgeToEdge;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.core.graphics.Insets;
|
import androidx.core.graphics.Insets;
|
||||||
import androidx.core.view.ViewCompat;
|
import androidx.core.view.ViewCompat;
|
||||||
@ -9,23 +11,62 @@ import androidx.fragment.app.Fragment;
|
|||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.drawable.ColorDrawable;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.provider.Settings;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.Gravity;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.Window;
|
||||||
|
import android.view.WindowManager;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.bumptech.glide.Glide;
|
||||||
|
import com.bumptech.glide.load.DataSource;
|
||||||
|
import com.bumptech.glide.load.engine.GlideException;
|
||||||
|
import com.bumptech.glide.request.RequestListener;
|
||||||
|
import com.bumptech.glide.request.target.CustomTarget;
|
||||||
|
import com.bumptech.glide.request.target.Target;
|
||||||
|
import com.bumptech.glide.request.transition.Transition;
|
||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
|
import com.key.coolkeyboard.CoolKeyboardSkin;
|
||||||
import com.key.coolkeyboard.R;
|
import com.key.coolkeyboard.R;
|
||||||
import com.key.coolkeyboard.adapter.PageAdapter;
|
import com.key.coolkeyboard.adapter.PageAdapter;
|
||||||
|
import com.key.coolkeyboard.data.MydataBase;
|
||||||
|
import com.key.coolkeyboard.data.Otherdata;
|
||||||
import com.key.coolkeyboard.databinding.ActivityMainBinding;
|
import com.key.coolkeyboard.databinding.ActivityMainBinding;
|
||||||
import com.key.coolkeyboard.fragment.LikeFragment;
|
import com.key.coolkeyboard.fragment.LikeFragment;
|
||||||
import com.key.coolkeyboard.fragment.MainFragment;
|
import com.key.coolkeyboard.fragment.MainFragment;
|
||||||
|
import com.key.coolkeyboard.tool.Mytool;
|
||||||
|
import com.key.coolkeyboard.tool.StaticValue;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
ActivityMainBinding binding;
|
ActivityMainBinding binding;
|
||||||
private List<Fragment> list = new ArrayList<>();
|
private List<Fragment> list = new ArrayList<>();
|
||||||
|
|
||||||
|
private Dialog dialog;
|
||||||
|
private Dialog toastDialog;
|
||||||
|
private BroadcastReceiver broadcastReceiver;
|
||||||
|
private static final InputMethodManager methodManager = (InputMethodManager) CoolKeyboardSkin.app.getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||||
|
private Otherdata otherdata;
|
||||||
|
private String unzipPath;
|
||||||
|
|
||||||
@SuppressLint("MissingInflatedId")
|
@SuppressLint("MissingInflatedId")
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -40,18 +81,187 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
return insets;
|
return insets;
|
||||||
});
|
});
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
initData();
|
initData();
|
||||||
|
showDg();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showDg() {
|
||||||
|
dialog = new Dialog(this);
|
||||||
|
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
|
dialog.setContentView(R.layout.dialog);
|
||||||
|
dialog.setCancelable(true);
|
||||||
|
dialog.getWindow().setGravity(Gravity.BOTTOM);
|
||||||
|
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
|
||||||
|
|
||||||
|
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
|
||||||
|
lp.copyFrom(dialog.getWindow().getAttributes());
|
||||||
|
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||||
|
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||||
|
// dialog.setCanceledOnTouchOutside(false);
|
||||||
|
broadcastReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
updateDialogContent();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
registerReceiver(broadcastReceiver, new IntentFilter(Intent.ACTION_INPUT_METHOD_CHANGED));
|
||||||
|
|
||||||
|
dialog.findViewById(R.id.step1).setOnClickListener(v -> {
|
||||||
|
Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS);
|
||||||
|
startActivity(intent);
|
||||||
|
});
|
||||||
|
dialog.findViewById(R.id.step2).setOnClickListener(v -> methodManager.showInputMethodPicker());
|
||||||
|
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||||
|
@Override
|
||||||
|
public void onDismiss(DialogInterface dialog) {
|
||||||
|
Mytool.runIO(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
List<Otherdata> list1 = MydataBase.getInstance().myDAO().getAll();
|
||||||
|
otherdata = list1.get(137);
|
||||||
|
if (toastDialog == null) {
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
showToastDg();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
dialog.show();
|
||||||
|
dialog.getWindow().setAttributes(lp);
|
||||||
|
|
||||||
|
updateDialogContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateDialogContent() {
|
||||||
|
boolean step1 = Mytool.isStep1();
|
||||||
|
boolean step2 = Mytool.isStep2();
|
||||||
|
dialog.findViewById(R.id.step1).setSelected(step1);
|
||||||
|
dialog.findViewById(R.id.step2).setSelected(step2);
|
||||||
|
updateDialogImages();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showToastDg() {
|
||||||
|
toastDialog = new Dialog(this);
|
||||||
|
toastDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
|
toastDialog.setContentView(R.layout.toast_dialog);
|
||||||
|
toastDialog.setCancelable(true);
|
||||||
|
// toastDialog.getWindow().setGravity(Gravity.BOTTOM);
|
||||||
|
toastDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
|
||||||
|
|
||||||
|
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
|
||||||
|
lp.copyFrom(toastDialog.getWindow().getAttributes());
|
||||||
|
lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||||
|
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||||
|
|
||||||
|
ImageView toastImageView = toastDialog.findViewById(R.id.toast_dialog_image);
|
||||||
|
Glide.with(MainActivity.this)
|
||||||
|
.asBitmap()
|
||||||
|
.load(otherdata.getPreview())
|
||||||
|
.placeholder(R.mipmap.logo)
|
||||||
|
.into(new CustomTarget<Bitmap>() {
|
||||||
|
@Override
|
||||||
|
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
|
||||||
|
toastImageView.setImageBitmap(resource);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadCleared(@Nullable Drawable placeholder) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
toastDialog.setCanceledOnTouchOutside(false);
|
||||||
|
toastDialog.findViewById(R.id.toast_dialog_apply).setOnClickListener(v -> {
|
||||||
|
downLoad();
|
||||||
|
|
||||||
|
});
|
||||||
|
toastDialog.findViewById(R.id.toast_dialog_cancel).setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
// if (toastDialog != null && toastDialog.isShowing()) {
|
||||||
|
toastDialog.dismiss();
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
File cacheDir = this.getCacheDir();
|
||||||
|
unzipPath = cacheDir + "/" + otherdata.getTitle();
|
||||||
|
|
||||||
|
toastDialog.show();
|
||||||
|
toastDialog.getWindow().setAttributes(lp);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void downLoad() {
|
||||||
|
if (!Mytool.isStep1() || !Mytool.isStep2()) {
|
||||||
|
// Toast.makeText(this, getString(R.string.text_hint), Toast.LENGTH_SHORT).show();
|
||||||
|
Intent intent = new Intent(this, SettingActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
} else {
|
||||||
|
Mytool.donwnZip(this, otherdata.getZipUrl(), (successful, resource) -> {
|
||||||
|
if (successful) {
|
||||||
|
Mytool.unZip(this, unzipPath, resource, (successful1, resDirPath) -> {
|
||||||
|
if (successful1) {
|
||||||
|
StaticValue.PATH = resDirPath;
|
||||||
|
otherdata.setDownloaded(true);
|
||||||
|
Mytool.runIO(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
MydataBase.getInstance().myDAO().update(otherdata);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
showKey();
|
||||||
|
} else {
|
||||||
|
Toast.makeText(MainActivity.this, getString(R.string.text_zip_failed), Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Toast.makeText(MainActivity.this, getString(R.string.text_download_failed), Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showKey() {
|
||||||
|
Toast.makeText(MainActivity.this, getString(R.string.set_successful), Toast.LENGTH_SHORT).show();
|
||||||
|
Intent intent = new Intent(this, ShowKeyboardActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void hideDg() {
|
||||||
|
if (dialog != null && dialog.isShowing()) {
|
||||||
|
dialog.dismiss();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateDialogImages() {
|
||||||
|
if (Mytool.isStep2()) {
|
||||||
|
dialog.findViewById(R.id.step2_image).setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
dialog.findViewById(R.id.step2_image).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
if (Mytool.isStep1()) {
|
||||||
|
dialog.findViewById(R.id.step1_image).setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
dialog.findViewById(R.id.step1_image).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initData() {
|
private void initData() {
|
||||||
|
|
||||||
list.add(new MainFragment());
|
list.add(new MainFragment());
|
||||||
list.add(new LikeFragment());
|
list.add(new LikeFragment());
|
||||||
PageAdapter adapter = new PageAdapter(getSupportFragmentManager(), list);
|
PageAdapter adapter = new PageAdapter(getSupportFragmentManager(), list);
|
||||||
binding.mainViewpager.setAdapter(adapter);
|
binding.mainViewpager.setAdapter(adapter);
|
||||||
binding.mainTabLayout.setupWithViewPager(binding.mainViewpager);
|
binding.mainTabLayout.setupWithViewPager(binding.mainViewpager);
|
||||||
setmainTabIcons(binding.mainTabLayout);
|
setMainTabIcons(binding.mainTabLayout);
|
||||||
binding.mainViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
binding.mainViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||||
@ -68,7 +278,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setTabIcons(final int position) {
|
private void setTabIcons(final int position) {
|
||||||
for (int i = 0; i < binding.mainTabLayout.getTabCount(); i++) {
|
for (int i = 0; i < binding.mainTabLayout.getTabCount(); i++) {
|
||||||
final TabLayout.Tab tab = binding.mainTabLayout.getTabAt(i);
|
final TabLayout.Tab tab = binding.mainTabLayout.getTabAt(i);
|
||||||
@ -87,7 +296,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setmainTabIcons(TabLayout tabLayout) {
|
private void setMainTabIcons(TabLayout tabLayout) {
|
||||||
for (int i = 0; i < tabLayout.getTabCount(); i++) {
|
for (int i = 0; i < tabLayout.getTabCount(); i++) {
|
||||||
TabLayout.Tab tab = tabLayout.getTabAt(i);
|
TabLayout.Tab tab = tabLayout.getTabAt(i);
|
||||||
if (tab != null) {
|
if (tab != null) {
|
||||||
@ -105,5 +314,17 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
updateDialogContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
if (broadcastReceiver != null) {
|
||||||
|
unregisterReceiver(broadcastReceiver);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -71,17 +71,18 @@ public class PreviewActivity extends AppCompatActivity {
|
|||||||
private void showAd() {
|
private void showAd() {
|
||||||
ATInterstitial mInterstitialAd = Mytool.onCache(ads);
|
ATInterstitial mInterstitialAd = Mytool.onCache(ads);
|
||||||
if (mInterstitialAd == null) {
|
if (mInterstitialAd == null) {
|
||||||
finish();
|
showKey();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Mytool.setCallback(mInterstitialAd, new Adcallback() {
|
Mytool.setCallback(mInterstitialAd, new Adcallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onShowFail(AdError ad) {
|
public void onShowFail(AdError ad) {
|
||||||
finish();
|
showKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAdHidden() {
|
public void onAdHidden() {
|
||||||
finish();
|
showKey();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
mInterstitialAd.show(this);
|
mInterstitialAd.show(this);
|
||||||
@ -89,6 +90,13 @@ public class PreviewActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showKey() {
|
||||||
|
Toast.makeText(PreviewActivity.this, getString(R.string.set_successful), Toast.LENGTH_SHORT).show();
|
||||||
|
Intent intent = new Intent(this, ShowKeyboardActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
|
||||||
private void initEvent() {
|
private void initEvent() {
|
||||||
|
|
||||||
binding.previewBack.setOnClickListener(new View.OnClickListener() {
|
binding.previewBack.setOnClickListener(new View.OnClickListener() {
|
||||||
@ -152,8 +160,13 @@ public class PreviewActivity extends AppCompatActivity {
|
|||||||
Mytool.unZip(this, unzipPath, resource, (successful1, resDirPath) -> {
|
Mytool.unZip(this, unzipPath, resource, (successful1, resDirPath) -> {
|
||||||
if (successful1) {
|
if (successful1) {
|
||||||
StaticValue.PATH = resDirPath;
|
StaticValue.PATH = resDirPath;
|
||||||
Toast.makeText(PreviewActivity.this, getString(R.string.set_successful), Toast.LENGTH_SHORT).show();
|
otherdata.setDownloaded(true);
|
||||||
|
Mytool.runIO(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
MydataBase.getInstance().myDAO().update(otherdata);
|
||||||
|
}
|
||||||
|
});
|
||||||
showAd();
|
showAd();
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(PreviewActivity.this, getString(R.string.text_zip_failed), Toast.LENGTH_SHORT).show();
|
Toast.makeText(PreviewActivity.this, getString(R.string.text_zip_failed), Toast.LENGTH_SHORT).show();
|
||||||
@ -182,11 +195,16 @@ public class PreviewActivity extends AppCompatActivity {
|
|||||||
if (!existingData.isEmpty()) {
|
if (!existingData.isEmpty()) {
|
||||||
otherdata = existingData.get(0);
|
otherdata = existingData.get(0);
|
||||||
islike = otherdata.getIslike();
|
islike = otherdata.getIslike();
|
||||||
|
boolean isdown = otherdata.getDownloaded();
|
||||||
if (islike) {
|
if (islike) {
|
||||||
binding.previewIslike.setBackgroundResource(R.drawable.icon_prelike_check);
|
binding.previewIslike.setBackgroundResource(R.drawable.icon_prelike_check);
|
||||||
} else {
|
} else {
|
||||||
binding.previewIslike.setBackgroundResource(R.drawable.icon_prelike_uncheck);
|
binding.previewIslike.setBackgroundResource(R.drawable.icon_prelike_uncheck);
|
||||||
}
|
}
|
||||||
|
if (isdown) {
|
||||||
|
binding.downloadText.setText(R.string.download_apply);
|
||||||
|
binding.downloadImage.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -199,6 +217,7 @@ public class PreviewActivity extends AppCompatActivity {
|
|||||||
binding.previewImage.setImageBitmap(resource);
|
binding.previewImage.setImageBitmap(resource);
|
||||||
binding.previewImage.setVisibility(View.VISIBLE);
|
binding.previewImage.setVisibility(View.VISIBLE);
|
||||||
binding.imageProgress.setVisibility(View.GONE);
|
binding.imageProgress.setVisibility(View.GONE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import com.key.coolkeyboard.tool.Mytool;
|
|||||||
|
|
||||||
public class SettingActivity extends AppCompatActivity {
|
public class SettingActivity extends AppCompatActivity {
|
||||||
ActivitySettingBinding binding;
|
ActivitySettingBinding binding;
|
||||||
|
private BroadcastReceiver broadcastReceiver;
|
||||||
private static final InputMethodManager methodManager = (InputMethodManager) CoolKeyboardSkin.app.getSystemService(Context.INPUT_METHOD_SERVICE);
|
private static final InputMethodManager methodManager = (InputMethodManager) CoolKeyboardSkin.app.getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -41,12 +42,20 @@ public class SettingActivity extends AppCompatActivity {
|
|||||||
binding.settingTitle.setTypeface(Typeface.createFromAsset(getAssets(), "Baumans-Regular.ttf"));
|
binding.settingTitle.setTypeface(Typeface.createFromAsset(getAssets(), "Baumans-Regular.ttf"));
|
||||||
|
|
||||||
|
|
||||||
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
|
broadcastReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
binding.step1.setSelected(Mytool.isStep1());
|
boolean step1 = Mytool.isStep1();
|
||||||
binding.step2.setSelected(Mytool.isStep2());
|
boolean step2 = Mytool.isStep2();
|
||||||
|
binding.step1.setSelected(step1);
|
||||||
|
binding.step2.setSelected(step2);
|
||||||
intImage();
|
intImage();
|
||||||
|
if (step1 && step2) {
|
||||||
|
Intent settingIntent = new Intent(context, SettingActivity.class);
|
||||||
|
settingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||||
|
context.startActivity(settingIntent);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
registerReceiver(broadcastReceiver, new IntentFilter(Intent.ACTION_INPUT_METHOD_CHANGED));
|
registerReceiver(broadcastReceiver, new IntentFilter(Intent.ACTION_INPUT_METHOD_CHANGED));
|
||||||
@ -97,8 +106,23 @@ public class SettingActivity extends AppCompatActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
binding.step1.setSelected(Mytool.isStep1());
|
boolean step1 = Mytool.isStep1();
|
||||||
binding.step2.setSelected(Mytool.isStep2());
|
boolean step2 = Mytool.isStep2();
|
||||||
|
|
||||||
|
binding.step1.setSelected(step1);
|
||||||
|
binding.step2.setSelected(step2);
|
||||||
intImage();
|
intImage();
|
||||||
|
|
||||||
|
if (step1 && step2) {
|
||||||
|
Intent intent = new Intent(SettingActivity.this, MainActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
unregisterReceiver(broadcastReceiver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
package com.key.coolkeyboard.activity;
|
||||||
|
|
||||||
|
import androidx.activity.EdgeToEdge;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.graphics.Insets;
|
||||||
|
import androidx.core.view.ViewCompat;
|
||||||
|
import androidx.core.view.WindowInsetsCompat;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.Typeface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
|
||||||
|
import com.key.coolkeyboard.R;
|
||||||
|
import com.key.coolkeyboard.databinding.ActivityShowKeyboardBinding;
|
||||||
|
|
||||||
|
public class ShowKeyboardActivity extends AppCompatActivity {
|
||||||
|
ActivityShowKeyboardBinding binding;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
binding = ActivityShowKeyboardBinding.inflate(getLayoutInflater());
|
||||||
|
setContentView(binding.getRoot());
|
||||||
|
|
||||||
|
EdgeToEdge.enable(this);
|
||||||
|
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity_show), (v, insets) -> {
|
||||||
|
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||||
|
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
|
||||||
|
return insets;
|
||||||
|
});
|
||||||
|
|
||||||
|
binding.showkeyBack.setOnClickListener(v -> finish());
|
||||||
|
binding.showkeyTitle.setTypeface(Typeface.createFromAsset(getAssets(), "Baumans-Regular.ttf"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
binding.showkeyEdit.requestFocus();
|
||||||
|
new Handler().postDelayed(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||||
|
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||||
|
imm.hideSoftInputFromWindow(binding.showkeyEdit.getWindowToken(), 0);
|
||||||
|
binding.showkeyEdit.clearFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -30,7 +30,7 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
private CountDownTimer countDownTimer;
|
private CountDownTimer countDownTimer;
|
||||||
private List<ATInterstitial> ads;
|
private List<ATInterstitial> ads;
|
||||||
|
|
||||||
public static boolean isAlreadyShow = false;
|
private boolean isAlreadyShow = false;
|
||||||
private float i = 0;
|
private float i = 0;
|
||||||
|
|
||||||
@SuppressLint("MissingInflatedId")
|
@SuppressLint("MissingInflatedId")
|
||||||
|
|||||||
@ -0,0 +1,34 @@
|
|||||||
|
package com.key.coolkeyboard.activity;
|
||||||
|
|
||||||
|
import androidx.activity.EdgeToEdge;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.graphics.Insets;
|
||||||
|
import androidx.core.view.ViewCompat;
|
||||||
|
import androidx.core.view.WindowInsetsCompat;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.webkit.WebView;
|
||||||
|
import android.webkit.WebViewClient;
|
||||||
|
|
||||||
|
import com.key.coolkeyboard.R;
|
||||||
|
|
||||||
|
public class WebActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
@SuppressLint("SetJavaScriptEnabled")
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
setContentView(R.layout.activity_web);
|
||||||
|
EdgeToEdge.enable(this);
|
||||||
|
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity_web), (v, insets) -> {
|
||||||
|
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||||
|
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
|
||||||
|
return insets;
|
||||||
|
});
|
||||||
|
WebView webView = findViewById(R.id.web);
|
||||||
|
webView.getSettings().setJavaScriptEnabled(true);
|
||||||
|
webView.setWebViewClient(new WebViewClient());
|
||||||
|
webView.loadUrl("file:///android_asset/privacy.html");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -19,6 +19,16 @@ public class Otherdata {
|
|||||||
public String title;
|
public String title;
|
||||||
public String zipUrl;
|
public String zipUrl;
|
||||||
public Boolean islike;
|
public Boolean islike;
|
||||||
|
public Boolean isDownloaded;
|
||||||
|
|
||||||
|
public Boolean getDownloaded() {
|
||||||
|
return isDownloaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDownloaded(Boolean downloaded) {
|
||||||
|
isDownloaded = downloaded;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPreview() {
|
public String getPreview() {
|
||||||
return preview;
|
return preview;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import com.key.coolkeyboard.activity.MainActivity;
|
|||||||
import com.key.coolkeyboard.activity.PreviewActivity;
|
import com.key.coolkeyboard.activity.PreviewActivity;
|
||||||
import com.key.coolkeyboard.activity.SerachActivity;
|
import com.key.coolkeyboard.activity.SerachActivity;
|
||||||
import com.key.coolkeyboard.activity.SettingActivity;
|
import com.key.coolkeyboard.activity.SettingActivity;
|
||||||
|
import com.key.coolkeyboard.activity.WebActivity;
|
||||||
import com.key.coolkeyboard.adapter.ThumAdapter;
|
import com.key.coolkeyboard.adapter.ThumAdapter;
|
||||||
import com.key.coolkeyboard.data.Otherdata;
|
import com.key.coolkeyboard.data.Otherdata;
|
||||||
import com.key.coolkeyboard.databinding.FragmentMainBinding;
|
import com.key.coolkeyboard.databinding.FragmentMainBinding;
|
||||||
@ -74,10 +75,12 @@ public class MainFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
binding.settingCons.setOnClickListener(new View.OnClickListener() {
|
binding.rateCons.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Intent intent = new Intent(requireContext(), SettingActivity.class);
|
String url = "https://play.google.com/store/apps/details?id=com.key.coolkeyboard";
|
||||||
|
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||||
|
intent.setData(Uri.parse(url));
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -98,9 +101,7 @@ public class MainFragment extends Fragment {
|
|||||||
binding.privacyCons.setOnClickListener(new View.OnClickListener() {
|
binding.privacyCons.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
String url = getString(R.string.privacy_url);
|
Intent intent = new Intent(requireContext(), WebActivity.class);
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
|
||||||
intent.setData(Uri.parse(url));
|
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -312,6 +312,7 @@ public class Mytool {
|
|||||||
for (int i = 0; i < classArray.length(); i++) {
|
for (int i = 0; i < classArray.length(); i++) {
|
||||||
JSONObject item = classArray.getJSONObject(i);
|
JSONObject item = classArray.getJSONObject(i);
|
||||||
Otherdata otherdata = new Otherdata();
|
Otherdata otherdata = new Otherdata();
|
||||||
|
otherdata.setDownloaded(false);
|
||||||
otherdata.setIslike(false);
|
otherdata.setIslike(false);
|
||||||
otherdata.setClassName(myData.getName());
|
otherdata.setClassName(myData.getName());
|
||||||
otherdata.setPreview(item.getString("preview"));
|
otherdata.setPreview(item.getString("preview"));
|
||||||
|
|||||||
7
app/src/main/res/drawable/dialog_bg.xml
Normal file
7
app/src/main/res/drawable/dialog_bg.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="@color/black" />
|
||||||
|
<corners
|
||||||
|
android:topLeftRadius="60dp"
|
||||||
|
android:topRightRadius="60dp" />
|
||||||
|
</shape>
|
||||||
14
app/src/main/res/drawable/icon_delete.xml
Normal file
14
app/src/main/res/drawable/icon_delete.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:strokeWidth="1"
|
||||||
|
android:pathData="M12,0.5L12,0.5A11.5,11.5 0,0 1,23.5 12L23.5,12A11.5,11.5 0,0 1,12 23.5L12,23.5A11.5,11.5 0,0 1,0.5 12L0.5,12A11.5,11.5 0,0 1,12 0.5z"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#ffffff"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M16.496,8.511C16.774,8.233 16.774,7.782 16.496,7.504C16.218,7.225 15.767,7.225 15.489,7.504L12,10.993L8.511,7.504C8.233,7.225 7.782,7.225 7.504,7.504C7.225,7.782 7.225,8.233 7.504,8.511L10.993,12L7.504,15.489C7.225,15.767 7.225,16.218 7.504,16.496C7.782,16.774 8.233,16.774 8.511,16.496L12,13.007L15.489,16.496C15.767,16.774 16.218,16.774 16.496,16.496C16.774,16.218 16.774,15.767 16.496,15.489L13.007,12L16.496,8.511Z"
|
||||||
|
android:fillColor="#ffffff"/>
|
||||||
|
</vector>
|
||||||
12
app/src/main/res/drawable/icon_rate.xml
Normal file
12
app/src/main/res/drawable/icon_rate.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:pathData="M8,5h9v9h-9z"
|
||||||
|
android:fillColor="#7C7E83"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M12,12.475L13.9,13.625C14.083,13.742 14.267,13.738 14.45,13.613C14.633,13.488 14.7,13.317 14.65,13.1L14.15,10.925L15.85,9.45C16.017,9.3 16.067,9.121 16,8.913C15.933,8.705 15.783,8.592 15.55,8.575L13.325,8.4L12.45,6.35C12.367,6.15 12.217,6.05 12,6.05C11.783,6.05 11.633,6.15 11.55,6.35L10.675,8.4L8.45,8.575C8.217,8.592 8.067,8.704 8,8.913C7.933,9.122 7.983,9.301 8.15,9.45L9.85,10.925L9.35,13.1C9.3,13.317 9.367,13.488 9.55,13.613C9.733,13.738 9.917,13.742 10.1,13.625L12,12.475ZM6,18L3.7,20.3C3.383,20.617 3.021,20.688 2.612,20.513C2.203,20.338 1.999,20.026 2,19.575V4C2,3.45 2.196,2.979 2.588,2.588C2.98,2.197 3.451,2.001 4,2H20C20.55,2 21.021,2.196 21.413,2.588C21.805,2.98 22.001,3.451 22,4V16C22,16.55 21.804,17.021 21.413,17.413C21.022,17.805 20.551,18.001 20,18H6Z"
|
||||||
|
android:fillColor="#ffffff"/>
|
||||||
|
</vector>
|
||||||
8
app/src/main/res/drawable/showkeyboard_edit.xml
Normal file
8
app/src/main/res/drawable/showkeyboard_edit.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="@color/showkey_edit_hint_color" />
|
||||||
|
<corners android:radius="8dp" />
|
||||||
|
<stroke
|
||||||
|
android:width="2dp"
|
||||||
|
android:color="@color/color_main_setting" />
|
||||||
|
</shape>
|
||||||
8
app/src/main/res/drawable/toast_dialog_apply_bg.xml
Normal file
8
app/src/main/res/drawable/toast_dialog_apply_bg.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="@color/black" />
|
||||||
|
<corners android:radius="31dp" />
|
||||||
|
<stroke
|
||||||
|
android:width="4dp"
|
||||||
|
android:color="@color/white" />
|
||||||
|
</shape>
|
||||||
@ -71,7 +71,7 @@
|
|||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/step1"
|
android:id="@+id/step1"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="54dp"
|
||||||
android:layout_marginStart="24dp"
|
android:layout_marginStart="24dp"
|
||||||
android:layout_marginTop="50dp"
|
android:layout_marginTop="50dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
@ -108,7 +108,7 @@
|
|||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/step2"
|
android:id="@+id/step2"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="54dp"
|
||||||
android:layout_marginStart="24dp"
|
android:layout_marginStart="24dp"
|
||||||
android:layout_marginTop="24dp"
|
android:layout_marginTop="24dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
|
|||||||
58
app/src/main/res/layout/activity_show_keyboard.xml
Normal file
58
app/src/main/res/layout/activity_show_keyboard.xml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/activity_show"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/black"
|
||||||
|
tools:context=".activity.ShowKeyboardActivity">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/showkey_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="14dp"
|
||||||
|
android:text="@string/showkey_title"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="24sp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/showkey_back"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:background="@drawable/bg_main_setting"
|
||||||
|
android:padding="8dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/showkey_title"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/showkey_title">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="18dp"
|
||||||
|
android:layout_height="18dp"
|
||||||
|
android:src="@drawable/icon_back"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/showkey_edit"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="20dp"
|
||||||
|
android:background="@drawable/showkeyboard_edit"
|
||||||
|
android:hint="@string/showkey_hint_text"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:textColorHint="@color/showkey_edit_text_color"
|
||||||
|
android:textSize="16sp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
14
app/src/main/res/layout/activity_web.xml
Normal file
14
app/src/main/res/layout/activity_web.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/activity_web"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context=".activity.WebActivity">
|
||||||
|
|
||||||
|
<WebView
|
||||||
|
android:id="@+id/web"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
110
app/src/main/res/layout/dialog.xml
Normal file
110
app/src/main/res/layout/dialog.xml
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/dialog_bg">
|
||||||
|
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/setting_image"
|
||||||
|
android:layout_width="200dp"
|
||||||
|
android:layout_height="200dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:src="@mipmap/setting_hint_image"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/setting_hint"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="30dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/setting_hint"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="29sp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/setting_image" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/step1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="54dp"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginTop="50dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
|
android:background="@drawable/step_selector"
|
||||||
|
android:paddingStart="12dp"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:paddingEnd="12dp"
|
||||||
|
android:paddingBottom="10dp"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/setting_hint">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/step1_image"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:background="@drawable/icon_check"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/step1_text"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/step1_text"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/step1_text" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/step1_text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/step1"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/step2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="54dp"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
|
android:layout_marginBottom="60dp"
|
||||||
|
android:background="@drawable/step_selector"
|
||||||
|
android:paddingStart="12dp"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:paddingEnd="12dp"
|
||||||
|
android:paddingBottom="10dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/step1">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/step2_image"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:background="@drawable/icon_check"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/step2_text"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/step2_text"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/step2_text" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/step2_text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/step2"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@ -6,8 +6,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@color/black"
|
android:background="@color/black"
|
||||||
tools:openDrawer="start"
|
tools:context=".fragment.MainFragment"
|
||||||
tools:context=".fragment.MainFragment">
|
tools:openDrawer="start">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -57,12 +57,12 @@
|
|||||||
android:layout_marginTop="24dp"
|
android:layout_marginTop="24dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
android:background="@drawable/search_edit"
|
android:background="@drawable/search_edit"
|
||||||
|
android:focusable="true"
|
||||||
|
android:focusableInTouchMode="true"
|
||||||
android:paddingStart="20dp"
|
android:paddingStart="20dp"
|
||||||
android:paddingTop="10dp"
|
android:paddingTop="10dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:paddingBottom="10dp"
|
android:paddingBottom="10dp"
|
||||||
android:focusable="true"
|
|
||||||
android:focusableInTouchMode="true"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/main_title">
|
app:layout_constraintTop_toBottomOf="@id/main_title">
|
||||||
@ -174,9 +174,9 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="start"
|
android:layout_gravity="start"
|
||||||
|
android:background="@color/black"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:background="@color/black"
|
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingEnd="16dp">
|
android:paddingEnd="16dp">
|
||||||
|
|
||||||
@ -190,49 +190,12 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:id="@+id/setting_cons"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="30dp"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/setting_title">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/setting"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:src="@drawable/icon_setting"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="12dp"
|
|
||||||
android:text="@string/setting_text"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="19sp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@id/setting"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/setting"
|
|
||||||
app:layout_constraintTop_toTopOf="@id/setting" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="20dp"
|
|
||||||
android:layout_height="20dp"
|
|
||||||
android:background="@drawable/icon_viewall"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@id/setting"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@id/setting" />
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/share_cons"
|
android:id="@+id/share_cons"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="32dp"
|
android:layout_marginTop="30dp"
|
||||||
app:layout_constraintTop_toBottomOf="@id/setting_cons">
|
app:layout_constraintTop_toBottomOf="@id/setting_title">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/share"
|
android:id="@+id/share"
|
||||||
@ -299,17 +262,53 @@
|
|||||||
app:layout_constraintTop_toTopOf="@id/privacy" />
|
app:layout_constraintTop_toTopOf="@id/privacy" />
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<TextView
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_marginBottom="20dp"
|
android:id="@+id/rate_cons"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="30dp"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/privacy_cons">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/rate"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:src="@drawable/icon_rate"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:text="@string/rate_text"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="19sp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/rate"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/rate"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/rate" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="20dp"
|
||||||
|
android:layout_height="20dp"
|
||||||
|
android:background="@drawable/icon_viewall"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/rate"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/rate" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/version"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="20dp"
|
||||||
android:text="@string/versionnumver_text"
|
android:text="@string/versionnumver_text"
|
||||||
android:textColor="@color/version"
|
android:textColor="@color/version"
|
||||||
android:textSize="17sp"
|
android:textSize="17sp"
|
||||||
android:id="@+id/version"/>
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|||||||
57
app/src/main/res/layout/toast_dialog.xml
Normal file
57
app/src/main/res/layout/toast_dialog.xml
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/toast_dialog_cons"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@mipmap/toast_image_bg"
|
||||||
|
android:padding="24dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/toast_dialog_image"
|
||||||
|
android:layout_width="270dp"
|
||||||
|
android:layout_height="200dp"
|
||||||
|
android:layout_marginTop="50dp"
|
||||||
|
android:layout_marginBottom="20dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatButton
|
||||||
|
android:id="@+id/toast_dialog_apply"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="-25dp"
|
||||||
|
android:background="@drawable/toast_dialog_apply_bg"
|
||||||
|
android:paddingStart="40dp"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingEnd="40dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:text="@string/toast_apply_text"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/toast_dialog_cons" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/toast_dialog_cancel"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginTop="50dp"
|
||||||
|
android:background="@drawable/icon_delete"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/toast_dialog_cons" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
BIN
app/src/main/res/mipmap-xxxhdpi/toast_image_bg.png
Normal file
BIN
app/src/main/res/mipmap-xxxhdpi/toast_image_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 280 KiB |
@ -8,4 +8,6 @@
|
|||||||
<color name="color_main_setting">#F24180</color>
|
<color name="color_main_setting">#F24180</color>
|
||||||
<color name="step_check">#CFCFCF</color>
|
<color name="step_check">#CFCFCF</color>
|
||||||
<color name="version">#9D9D9D</color>
|
<color name="version">#9D9D9D</color>
|
||||||
|
<color name="showkey_edit_hint_color">#F7F4FF</color>
|
||||||
|
<color name="showkey_edit_text_color">#F4B1C9</color>
|
||||||
</resources>
|
</resources>
|
||||||
@ -5,6 +5,7 @@
|
|||||||
<string name="favorite_title">My Favorite</string>
|
<string name="favorite_title">My Favorite</string>
|
||||||
<string name="setting_title">Settings</string>
|
<string name="setting_title">Settings</string>
|
||||||
<string name="setting_text">System authorization</string>
|
<string name="setting_text">System authorization</string>
|
||||||
|
<string name="rate_text">Rate</string>
|
||||||
<string name="share_text">Share</string>
|
<string name="share_text">Share</string>
|
||||||
<string name="prevacy_text">Privacy Policy</string>
|
<string name="prevacy_text">Privacy Policy</string>
|
||||||
<string name="version_text">Version number</string>
|
<string name="version_text">Version number</string>
|
||||||
@ -24,13 +25,17 @@
|
|||||||
<string name="text_zip_failed">Zip failed</string>
|
<string name="text_zip_failed">Zip failed</string>
|
||||||
<string name="share_title">Here is a Cool Keyboard</string>
|
<string name="share_title">Here is a Cool Keyboard</string>
|
||||||
<string name="nolike_tips">No favorites added yet</string>
|
<string name="nolike_tips">No favorites added yet</string>
|
||||||
<string name="setting_hint">Activate PassionCool \n Keyboard To enable \n MORE functions!</string>
|
<string name="setting_hint">Keyboard \n requires permission to use</string>
|
||||||
<string name="step1">Step 1:Select</string>
|
<string name="step1">Step 1:Select</string>
|
||||||
<string name="step2">Step 2:Enabled</string>
|
<string name="step2">Step 2:Enabled</string>
|
||||||
<string name="text_hint">For normal use, please enter the setting to complete the setting steps.</string>
|
<string name="text_hint">For normal use, please enter the setting to complete the setting steps.</string>
|
||||||
<string name="main_banner_title">Start using Wallpaper Keyboard !</string>
|
<string name="main_banner_title">Start using Wallpaper Keyboard !</string>
|
||||||
<string name="versionnumver_text">Version 1.0.0</string>
|
<string name="versionnumver_text">Version 1.0.1</string>
|
||||||
<!-- TODO: Remove or change this placeholder text -->
|
<!-- TODO: Remove or change this placeholder text -->
|
||||||
<string name="hello_blank_fragment">Hello blank fragment</string>
|
<string name="hello_blank_fragment">Hello blank fragment</string>
|
||||||
<string name="privacy_url">https://sites.google.com/view/cool-keyboard---theme-skin</string>
|
<string name="privacy_url">https://sites.google.com/view/cool-keyboard---theme-skin</string>
|
||||||
|
<string name="showkey_hint_text">Enter text to see the effect</string>
|
||||||
|
<string name="showkey_title">Applied results</string>
|
||||||
|
<string name="download_apply">Apply</string>
|
||||||
|
<string name="toast_apply_text">Apply Now</string>
|
||||||
</resources>
|
</resources>
|
||||||
Loading…
Reference in New Issue
Block a user