diff --git a/app/build.gradle b/app/build.gradle index f7ad324..629e976 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.uiui.zyos" minSdkVersion 24 targetSdkVersion 29 - versionCode 3 - versionName "1.2" + versionCode 6 + versionName "1.5" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0316179..1b71f1f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -90,6 +90,7 @@ android:excludeFromRecents="true" android:screenOrientation="portrait" android:theme="@style/activity_styles" /> + + + - - + - - + android:exported="false" /> - - - + - - + android:value="AZZXANJF4HBD" /> - + android:value="333816243" /> + \ No newline at end of file diff --git a/app/src/main/aidl/com/uiui/zysn/IGetInfoInterface.aidl b/app/src/main/aidl/com/uiui/zysn/IGetInfoInterface.aidl index 209048a..c4cad25 100644 --- a/app/src/main/aidl/com/uiui/zysn/IGetInfoInterface.aidl +++ b/app/src/main/aidl/com/uiui/zysn/IGetInfoInterface.aidl @@ -17,4 +17,8 @@ interface IGetInfoInterface { String getMapResult(); //获取mac作为sn String getPushMac(); + //是否激活 + boolean SnIsActivation(); + //设置为默认桌面 + void setDefaultLauncher(String pkg); } diff --git a/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java b/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java index 1b631c4..5aa542f 100644 --- a/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java +++ b/app/src/main/java/com/uiui/zyos/activity/main/MainActivity.java @@ -1,5 +1,6 @@ package com.uiui.zyos.activity.main; +import android.app.role.RoleManager; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ComponentName; @@ -9,7 +10,10 @@ import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.graphics.Color; +import android.os.Build; import android.os.Bundle; +import android.os.Process; +import android.os.UserHandle; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; @@ -28,12 +32,12 @@ import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; import com.tencent.mmkv.MMKV; +import com.uiui.zyos.BuildConfig; import com.uiui.zyos.R; import com.uiui.zyos.base.BaseActivity; import com.uiui.zyos.base.viewpager.BaseFragmentPagerAdapter; import com.uiui.zyos.config.CommonConfig; import com.uiui.zyos.dialog.PrivacyPolicyDialog; -import com.uiui.zyos.fragment.main.MainFragment; import com.uiui.zyos.fragment.subject.SubjectFragment; import com.uiui.zyos.fragment.user.UserFragment; import com.uiui.zyos.jxw.JxwPackageConfig; @@ -48,6 +52,8 @@ import net.lucode.hackware.magicindicator.MagicIndicator; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.Executor; +import java.util.function.Consumer; import butterknife.BindView; import butterknife.ButterKnife; @@ -82,7 +88,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); private MainAPresenter mPresenter; - private HomeWatcher mHomeWatcher; +// private HomeWatcher mHomeWatcher; private ScaleCircleNavigator scaleCircleNavigator; @@ -90,7 +96,6 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, private BaseFragmentPagerAdapter mBaseFragmentPagerAdapter; private List mFragments; - private MainFragment mMainFragment; private UserFragment mUserFragment; private SubjectFragment mSubjectFragment; private int defaultCurrent = 1; @@ -111,7 +116,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, mFragmentManager = getSupportFragmentManager(); mFragments = new ArrayList<>(); - mUserFragment =new UserFragment(); + mUserFragment = new UserFragment(); mSubjectFragment = new SubjectFragment(); mFragments.add(mUserFragment); mFragments.add(mSubjectFragment); @@ -138,31 +143,36 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, mSubjectFragment.setPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + Log.e("mSubjectFragment", "onPageScrolled: position = " + position + " positionOffset = " + positionOffset + " positionOffsetPixels = " + positionOffsetPixels); mMagicIndicator.onPageScrolled(position + 1, positionOffset, positionOffsetPixels); } @Override public void onPageSelected(int position) { + Log.e("mSubjectFragment", "onPageSelected: position = " + position); mMagicIndicator.onPageSelected(position + 1); } @Override public void onPageScrollStateChanged(int state) { - mMagicIndicator.onPageScrollStateChanged(state + 1); + Log.e("mSubjectFragment", "onPageSelected: state = " + state); + mMagicIndicator.onPageScrollStateChanged(state); } }); mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { -// Log.e(TAG, "onPageScrolled: position = " + position + " positionOffset = " + positionOffset + " positionOffsetPixels = " + positionOffsetPixels); - if (position <= 1) { - mMagicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels); + Log.e("mViewPager", "onPageScrolled: position = " + position + " positionOffset = " + positionOffset + " positionOffsetPixels = " + positionOffsetPixels); + if (!(position == 1 && positionOffsetPixels == 0)) { + if (position <= 1) { + mMagicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels); + } } } @Override public void onPageSelected(int position) { - Log.e(TAG, "onPageSelected: position = " + position); + Log.e("mViewPager", "onPageSelected: position = " + position); if (position <= 1) { mMagicIndicator.onPageSelected(position); } @@ -170,14 +180,14 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, @Override public void onPageScrollStateChanged(int state) { - Log.e(TAG, "onPageSelected: state = " + state); - if (state <= 1) { - mMagicIndicator.onPageScrollStateChanged(state); - } + Log.e("mViewPager", "onPageSelected: state = " + state); + mMagicIndicator.onPageScrollStateChanged(state); } }); + if (mFragments.size() > 1) { mViewPager.setCurrentItem(defaultCurrent); + mMagicIndicator.onPageSelected(defaultCurrent); } cl_0.setOnClickListener(new View.OnClickListener() { @@ -226,7 +236,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, cl_7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_dictionary_PACKAGE_NAME, JxwPackageConfig.JXW_dictionary_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_DICTIONARY_PACKAGE_NAME, JxwPackageConfig.JXW_DICTIONARY_CLASS_NAME); } }); @@ -235,7 +245,12 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, @Override public void initData() { registmNewAppReceiver(); - registerUpdateDesktopReceiver(); + RemoteManager.setListener(new RemoteManager.ConnectedListener() { + @Override + public void onConnected() { + RemoteManager.getInstance().setDefaultDesktop(); + } + }); } @Override @@ -373,15 +388,13 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, protected void onDestroy() { super.onDestroy(); mPresenter.detachView(); - if (mHomeWatcher != null) { - mHomeWatcher.stopWatch();// 在销毁时停止监听,不然会报错的。 - } +// if (mHomeWatcher != null) { +// mHomeWatcher.stopWatch();// 在销毁时停止监听,不然会报错的。 +// } if (mNewAppReceiver != null) { unregisterReceiver(mNewAppReceiver); } - if (updateDesktopReceiver != null) { - unregisterReceiver(updateDesktopReceiver); - } + } @Override @@ -423,7 +436,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, // ToastUtil.show("请授予\"" + getString(R.string.app_name) + "\"使用通知权"); // gotoNotificationAccessSetting(this); // } - addHomeWatcher(); +// addHomeWatcher(); } private void showPolicyDialog() { @@ -446,25 +459,25 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, privacyPolicyDialog.show(); } - private void addHomeWatcher() { - if (mHomeWatcher == null) { - mHomeWatcher = new HomeWatcher(this); - } - mHomeWatcher.setOnHomePressedListener(new HomeWatcher.OnHomePressedListener() { - @Override - public void onHomePressed() { - //按了HOME键 - Log.e(TAG, "onHomePressed: "); - } - - @Override - public void onHomeLongPressed() { - Log.e(TAG, "onHomeLongPressed: "); - //长按HOME键 - } - }); - mHomeWatcher.startWatch(); - } +// private void addHomeWatcher() { +// if (mHomeWatcher == null) { +// mHomeWatcher = new HomeWatcher(this); +// } +// mHomeWatcher.setOnHomePressedListener(new HomeWatcher.OnHomePressedListener() { +// @Override +// public void onHomePressed() { +// //按了HOME键 +// Log.e(TAG, "onHomePressed: "); +// } +// +// @Override +// public void onHomeLongPressed() { +// Log.e(TAG, "onHomeLongPressed: "); +// //长按HOME键 +// } +// }); +// mHomeWatcher.startWatch(); +// } private static final String ENABLED_NOTIFICATION_LISTENERS = "enabled_notification_listeners"; @@ -537,27 +550,6 @@ public class MainActivity extends BaseActivity implements MainContact.MainView, } } - private UpdateDesktopReceiver updateDesktopReceiver; - - private void registerUpdateDesktopReceiver() { - if (updateDesktopReceiver == null) { - updateDesktopReceiver = new UpdateDesktopReceiver(); - } - IntentFilter filter = new IntentFilter(); - filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); - filter.addAction("UPDATE_DESKTOP_ICON"); - registerReceiver(updateDesktopReceiver, filter); - } - - class UpdateDesktopReceiver extends BroadcastReceiver { - - @Override - public void onReceive(Context context, Intent intent) { - Log.e(TAG, "onReceive: " + intent.getAction()); - } - } - - @Override public void sendAPPUsageFinish() { diff --git a/app/src/main/java/com/uiui/zyos/adapter/AppAdapter.java b/app/src/main/java/com/uiui/zyos/adapter/AppAdapter.java index f786bca..bd44b7a 100644 --- a/app/src/main/java/com/uiui/zyos/adapter/AppAdapter.java +++ b/app/src/main/java/com/uiui/zyos/adapter/AppAdapter.java @@ -2,6 +2,7 @@ package com.uiui.zyos.adapter; import android.content.Context; import android.graphics.drawable.Drawable; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -16,12 +17,16 @@ import com.uiui.zyos.R; import com.uiui.zyos.bean.DesktopIcon; import com.uiui.zyos.utils.ApkUtils; import com.uiui.zyos.utils.AppUsedTimeUtils; +import com.uiui.zyos.utils.BitmapUtils; +import com.uiui.zyos.utils.IconUtils; import com.uiui.zyos.utils.OpenApkUtils; import java.util.ArrayList; import java.util.List; public class AppAdapter extends RecyclerView.Adapter { + private static final String TAG = AppAdapter.class.getSimpleName(); + private Context mContext; private List desktopIcons; @@ -38,13 +43,27 @@ public class AppAdapter extends RecyclerView.Adapter { DesktopIcon desktopIcon = desktopIcons.get(position); String lable = desktopIcon.getLable(); holder.tv_appname.setText(lable); - Drawable icon = desktopIcon.getIcon(); - holder.iv_icon.setImageDrawable(icon); + holder.iv_icon.setImageDrawable(desktopIcon.getIcon()); + String pkg = desktopIcon.getPackageName(); + Log.e(TAG, "getView: " + pkg); + int i = IconUtils.appClassNameList.indexOf(pkg); + if (i != -1) { + String val = IconUtils.appIconList.get(i); + int resID = mContext.getResources().getIdentifier(val, "drawable", "com.uiui.zyos"); + if (resID == 0) { + Log.e(TAG, "getView: not found src : " + pkg); + holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon())); + } else { + holder.iv_icon.setImageDrawable(mContext.getResources().getDrawable(resID)); + } + } else { + holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon())); + } holder.root.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { OpenApkUtils.getInstance().openApp(desktopIcon.getPackageName(), desktopIcon.getClassName()); - } + } }); } diff --git a/app/src/main/java/com/uiui/zyos/dialog/ChineseDialog.java b/app/src/main/java/com/uiui/zyos/dialog/ChineseDialog.java new file mode 100644 index 0000000..eac8513 --- /dev/null +++ b/app/src/main/java/com/uiui/zyos/dialog/ChineseDialog.java @@ -0,0 +1,60 @@ +package com.uiui.zyos.dialog; + +import android.content.Context; +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.constraintlayout.widget.ConstraintLayout; + +import com.uiui.zyos.R; + +public class ChineseDialog extends AlertDialog { + private Context mContext; + private OnClickListener mOnClickListener; + + private ConstraintLayout cl_pinyin; + private ConstraintLayout cl_stroke; + + public ChineseDialog(@NonNull Context context) { + super(context, R.style.CustomDialog); + this.mContext = context; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_chinese); + cl_pinyin = findViewById(R.id.cl_pinyin); + cl_stroke = findViewById(R.id.cl_stroke); + cl_pinyin.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener1(); + } + }); + cl_stroke.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener2(); + } + }); + } + + @Override + public void show() { + super.show(); + } + + @Override + public void dismiss() { + super.dismiss(); + } + + public void setOnClickListener(OnClickListener onClickListener){ + this.mOnClickListener = onClickListener; + } + + public interface OnClickListener{ + void onClickListener1(); + void onClickListener2(); + } +} diff --git a/app/src/main/java/com/uiui/zyos/dialog/EnglishBasicsDialog.java b/app/src/main/java/com/uiui/zyos/dialog/EnglishBasicsDialog.java new file mode 100644 index 0000000..a913008 --- /dev/null +++ b/app/src/main/java/com/uiui/zyos/dialog/EnglishBasicsDialog.java @@ -0,0 +1,111 @@ +package com.uiui.zyos.dialog; + +import android.content.Context; +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.constraintlayout.widget.ConstraintLayout; + +import com.uiui.zyos.R; + +public class EnglishBasicsDialog extends AlertDialog { + private Context mContext; + private OnClickListener mOnClickListener; + + private ConstraintLayout cl_pinyin; + private ConstraintLayout cl_stroke; + private ConstraintLayout cl_radicals; + + private ConstraintLayout cl_grammar; + private ConstraintLayout cl_alphabet; + private ConstraintLayout cl_sentence; + private ConstraintLayout cl_patterns; + private ConstraintLayout cl_writing; + public EnglishBasicsDialog(@NonNull Context context) { + super(context, R.style.CustomDialog); + this.mContext = context; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_english_basics); + cl_pinyin = findViewById(R.id.cl_pinyin); + cl_stroke = findViewById(R.id.cl_stroke); + cl_radicals = findViewById(R.id.cl_radicals); + cl_grammar = findViewById(R.id.cl_grammar); + cl_alphabet = findViewById(R.id.cl_alphabet); + cl_sentence = findViewById(R.id.cl_sentence); + cl_patterns = findViewById(R.id.cl_patterns); + cl_writing = findViewById(R.id.cl_writing); + + cl_pinyin.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener1(); + } + }); + cl_stroke.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener2(); + } + }); + cl_radicals.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener3(); + } + }); + cl_grammar.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener4(); + } + }); + + cl_alphabet.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener5(); + } + }); + cl_sentence.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener6(); + } + }); + cl_patterns.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener7(); + } + }); + cl_writing.setOnClickListener(view -> { + if (mOnClickListener!=null) { + mOnClickListener.onClickListener8(); + } + }); + } + + @Override + public void show() { + super.show(); + } + + @Override + public void dismiss() { + super.dismiss(); + } + + public void setOnClickListener(OnClickListener onClickListener){ + this.mOnClickListener = onClickListener; + } + + public interface OnClickListener{ + void onClickListener1(); + void onClickListener2(); + void onClickListener3(); + void onClickListener4(); + void onClickListener5(); + void onClickListener6(); + void onClickListener7(); + void onClickListener8(); + + } +} diff --git a/app/src/main/java/com/uiui/zyos/dialog/FoundationDialog.java b/app/src/main/java/com/uiui/zyos/dialog/FoundationDialog.java index 623e71d..f144a02 100644 --- a/app/src/main/java/com/uiui/zyos/dialog/FoundationDialog.java +++ b/app/src/main/java/com/uiui/zyos/dialog/FoundationDialog.java @@ -26,7 +26,7 @@ public class FoundationDialog extends AlertDialog { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.foundation_dialog); + setContentView(R.layout.dialog_foundation); cl_pinyin = findViewById(R.id.cl_pinyin); cl_stroke = findViewById(R.id.cl_stroke); cl_radicals = findViewById(R.id.cl_radicals); diff --git a/app/src/main/java/com/uiui/zyos/fragment/chinese/ChineseFragment.java b/app/src/main/java/com/uiui/zyos/fragment/chinese/ChineseFragment.java index 086e08f..5eef4aa 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/chinese/ChineseFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/chinese/ChineseFragment.java @@ -22,6 +22,7 @@ import androidx.fragment.app.Fragment; import com.blankj.utilcode.util.NetworkUtils; import com.uiui.zyos.R; import com.uiui.zyos.base.BaseFragment; +import com.uiui.zyos.dialog.ChineseDialog; import com.uiui.zyos.dialog.FoundationDialog; import com.uiui.zyos.jxw.JxwPackageConfig; import com.uiui.zyos.manager.RemoteManager; @@ -52,10 +53,17 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin ConstraintLayout cl_composition; @BindView(R.id.cl_read) ConstraintLayout cl_read; - @BindView(R.id.cl_rhetoric) - ConstraintLayout cl_rhetoric; + @BindView(R.id.cl_character) + ConstraintLayout cl_character; @BindView(R.id.cl_classical) ConstraintLayout cl_classical; + @BindView(R.id.cl_rhetoric) + ConstraintLayout cl_rhetoric; + @BindView(R.id.cl_treasure) + ConstraintLayout cl_treasure; + @BindView(R.id.cl_punctuation) + ConstraintLayout cl_punctuation; + @BindView(R.id.iv_dictation) ImageView iv_dictation; @BindView(R.id.iv_character) @@ -63,6 +71,7 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin @BindView(R.id.iv_foundation) ImageView iv_foundation; + private View rootView;// 设置为全局的 private Activity mContext; private ChinesePresenter mChinesePresenter; @@ -185,25 +194,39 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin cl_near_antonyms.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_NEAR_ANTONYMS_PACKAGE_NAME,JxwPackageConfig.JXW_NEAR_ANTONYMS_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_NEAR_ANTONYMS_PACKAGE_NAME, JxwPackageConfig.JXW_NEAR_ANTONYMS_CLASS_NAME); } }); cl_composition.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openComposition(); +// OpenApkUtils.getInstance().openComposition(); + ChineseDialog chineseDialog = new ChineseDialog(mContext); + chineseDialog.setOnClickListener(new ChineseDialog.OnClickListener() { + @Override + public void onClickListener1() { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学阅读指导.JXW"); + } + + @Override + public void onClickListener2() { + OpenApkUtils.getInstance().openChineseWriting(); + } + }); + chineseDialog.show(); } }); cl_read.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_READING_PACKAGE_NAME,JxwPackageConfig.JXW_READING_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_READING_PACKAGE_NAME, JxwPackageConfig.JXW_READING_CLASS_NAME); } }); - cl_rhetoric.setOnClickListener(new View.OnClickListener() { + cl_character.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openSolidifiedData("d:/同步学习/语文|e:JWFD"); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_CHARACTER_PACKAGE_NAME, JxwPackageConfig.JXW_CHARACTER_CLASS_NAME); +// OpenApkUtils.getInstance().openSolidifiedData("d:/同步学习/语文|e:JWFD"); } }); cl_classical.setOnClickListener(new View.OnClickListener() { @@ -212,6 +235,25 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学文言文.JXW"); } }); + cl_rhetoric.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学修辞方法.JXW"); + } + }); + cl_treasure.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学中华宝典.JXW"); + } + }); + cl_punctuation.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学标点符号.JXW"); + } + }); + iv_dictation.setOnClickListener(new View.OnClickListener() { @Override @@ -222,7 +264,7 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin iv_character.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_CHARACTER_PACKAGE_NAME,JxwPackageConfig.JXW_CHARACTER_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_CHARACTER_PACKAGE_NAME, JxwPackageConfig.JXW_CHARACTER_CLASS_NAME); } }); iv_foundation.setOnClickListener(new View.OnClickListener() { @@ -232,23 +274,23 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin foundationDialog.setOnClickListener(new FoundationDialog.OnClickListener() { @Override public void onClickListener1() { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_PINYIN_PACKAGE_NAME,JxwPackageConfig.JXW_PINYIN_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_PINYIN_PACKAGE_NAME, JxwPackageConfig.JXW_PINYIN_CLASS_NAME); } @Override public void onClickListener2() { - OpenApkUtils.getInstance().openAppWithoutArgs( JxwPackageConfig.JXW_BIHUA_PACKAGE_NAME, JxwPackageConfig.JXW_BIHUA_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_BIHUA_PACKAGE_NAME, JxwPackageConfig.JXW_BIHUA_CLASS_NAME); } @Override public void onClickListener3() { - OpenApkUtils.getInstance().openAppWithoutArgs( JxwPackageConfig.JXW_PIANPANG_PACKAGE_NAME, JxwPackageConfig.JXW_PIANPANG_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_PIANPANG_PACKAGE_NAME, JxwPackageConfig.JXW_PIANPANG_CLASS_NAME); } @Override public void onClickListener4() { - OpenApkUtils.getInstance().openAppWithoutArgs( JxwPackageConfig.JXW_BISHUN_PACKAGE_NAME, JxwPackageConfig.JXW_BISHUN_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_BISHUN_PACKAGE_NAME, JxwPackageConfig.JXW_BISHUN_CLASS_NAME); } }); foundationDialog.show(); diff --git a/app/src/main/java/com/uiui/zyos/fragment/complex/ComplexFragment.java b/app/src/main/java/com/uiui/zyos/fragment/complex/ComplexFragment.java index 8a45962..323175e 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/complex/ComplexFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/complex/ComplexFragment.java @@ -177,7 +177,7 @@ public class ComplexFragment extends BaseFragment { iv_famous_teacher.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_teacher_PACKAGE_NAME, JxwPackageConfig.JXW_teacher_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_TEACHER_PACKAGE_NAME, JxwPackageConfig.JXW_TEACHER_CLASS_NAME); } }); } diff --git a/app/src/main/java/com/uiui/zyos/fragment/english/EnglishFragment.java b/app/src/main/java/com/uiui/zyos/fragment/english/EnglishFragment.java index 9319366..73a50a8 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/english/EnglishFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/english/EnglishFragment.java @@ -13,6 +13,7 @@ import android.widget.ImageView; import com.uiui.zyos.R; import com.uiui.zyos.base.BaseFragment; +import com.uiui.zyos.dialog.EnglishBasicsDialog; import com.uiui.zyos.jxw.JxwPackageConfig; import com.uiui.zyos.utils.OpenApkUtils; @@ -57,7 +58,7 @@ public class EnglishFragment extends BaseFragment { public EnglishFragment() { // Required empty public constructor - Log.e(TAG, "EnglishFragment: " ); + Log.e(TAG, "EnglishFragment: "); } /** @@ -118,7 +119,7 @@ public class EnglishFragment extends BaseFragment { rootView = null; } - private void initView(){ + private void initView() { imageView5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -134,25 +135,69 @@ public class EnglishFragment extends BaseFragment { imageView7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_SOUNDMARK_PACKAGE_NAME,JxwPackageConfig.JXW_SOUNDMARK_CLASS_NAME); +// OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学英语词汇.JXW"); +// OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_SOUNDMARK_PACKAGE_NAME,JxwPackageConfig.JXW_SOUNDMARK_CLASS_NAME); + EnglishBasicsDialog englishBasicsDialog = new EnglishBasicsDialog(mContext); + englishBasicsDialog.setOnClickListener(new EnglishBasicsDialog.OnClickListener() { + @Override + public void onClickListener1() { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学英语词汇.JXW"); + } + + @Override + public void onClickListener2() { + OpenApkUtils.getInstance().openLetter(); + } + + @Override + public void onClickListener3() { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学基础语音.JXW"); + } + + @Override + public void onClickListener4() { + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_GRAMMAR_PACKAGE_NAME, JxwPackageConfig.JXW_Grammar_CLASS_NAME); + } + + @Override + public void onClickListener5() { + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_SOUNDMARK_PACKAGE_NAME, JxwPackageConfig.JXW_SOUNDMARK_CLASS_NAME); + } + + @Override + public void onClickListener6() { + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_Conjunctions_PACKAGE_NAME, JxwPackageConfig.JXW_Conjunctions_CLASS_NAME); + } + + @Override + public void onClickListener7() { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/英语句型.JXW"); + } + + @Override + public void onClickListener8() { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学英语写作.JXW"); + } + }); + englishBasicsDialog.show(); } }); imageView8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_TRANSLATE_PACKAGE_NAME,JxwPackageConfig.JXW_TRANSLATE_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_TRANSLATE_PACKAGE_NAME, JxwPackageConfig.JXW_TRANSLATE_CLASS_NAME); } }); imageView9.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_MEMORIZE_WORDS_PACKAGE_NAME,JxwPackageConfig.JXW_MEMORIZE_WORDS_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_MEMORIZE_WORDS_PACKAGE_NAME, JxwPackageConfig.JXW_WUWEI_WORDS_CLASS_NAME); } }); imageView10.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_ORAL_TEST_PACKAGE_NAME,JxwPackageConfig.JXW_ORAL_TEST_CLASS_NAME); + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_ORAL_TEST_PACKAGE_NAME, JxwPackageConfig.JXW_ORAL_TEST_CLASS_NAME); } }); imageView11.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/uiui/zyos/fragment/main/MainFragment.java b/app/src/main/java/com/uiui/zyos/fragment/main/MainFragment.java index 21ec8f7..2f73e7e 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/main/MainFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/main/MainFragment.java @@ -249,7 +249,9 @@ public class MainFragment extends BaseFragment implements MainContact.MainView { cl_3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openApp("com.android.camera"); +// OpenApkUtils.getInstance().openApp("com.android.camera"); + Intent intent = new Intent(Intent.ACTION_CAMERA_BUTTON); + startActivity(intent); } }); cl_4.setOnClickListener(new View.OnClickListener() { @@ -262,7 +264,9 @@ public class MainFragment extends BaseFragment implements MainContact.MainView { cl_5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - OpenApkUtils.getInstance().openApp("com.android.gallery3d.app"); +// OpenApkUtils.getInstance().openApp("com.android.gallery3d.app"); + Intent intent = new Intent(Intent.CATEGORY_APP_GALLERY); + startActivity(intent); } }); cl_6.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/uiui/zyos/fragment/math/MathFragment.java b/app/src/main/java/com/uiui/zyos/fragment/math/MathFragment.java index 8bf5d5b..392cc91 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/math/MathFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/math/MathFragment.java @@ -38,10 +38,18 @@ public class MathFragment extends BaseFragment { ConstraintLayout cl_composition; @BindView(R.id.cl_read) ConstraintLayout cl_read; - @BindView(R.id.cl_rhetoric) + @BindView(R.id.cl_character) ConstraintLayout cl_rhetoric; @BindView(R.id.cl_classical) ConstraintLayout cl_classical; + + @BindView(R.id.cl_encyclopedia) + ConstraintLayout cl_encyclopedia; + @BindView(R.id.cl_number) + ConstraintLayout cl_number; + @BindView(R.id.cl_formula) + ConstraintLayout cl_formula; + @BindView(R.id.iv_precision_learning) ImageView iv_precision_learning; @@ -165,6 +173,26 @@ public class MathFragment extends BaseFragment { OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_ARITHMETIC_PACKAGE_NAME,JxwPackageConfig.JXW_ARITHMETIC_CLASS_NAME); } }); + + cl_encyclopedia.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学公式大全.JXW"); + } + }); + cl_number.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_KNOW_MATHEMATICS_PACKAGE_NAME,JxwPackageConfig.JXW_KNOW_MATHEMATICS_CLASS_NAME); + } + }); + cl_formula.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学数学公式.JXW"); + } + }); + iv_precision_learning.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { diff --git a/app/src/main/java/com/uiui/zyos/fragment/precision/PrecisionFragment.java b/app/src/main/java/com/uiui/zyos/fragment/precision/PrecisionFragment.java new file mode 100644 index 0000000..d3fe79a --- /dev/null +++ b/app/src/main/java/com/uiui/zyos/fragment/precision/PrecisionFragment.java @@ -0,0 +1,148 @@ +package com.uiui.zyos.fragment.precision; + +import android.app.Activity; +import android.media.Image; +import android.os.Bundle; + +import androidx.fragment.app.Fragment; + +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import com.uiui.zyos.R; +import com.uiui.zyos.base.BaseFragment; +import com.uiui.zyos.fragment.chinese.ChinesePresenter; +import com.uiui.zyos.utils.OpenApkUtils; + +import butterknife.BindView; +import butterknife.ButterKnife; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link PrecisionFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class PrecisionFragment extends BaseFragment { + private static final String TAG = PrecisionFragment.class.getSimpleName(); + + @BindView(R.id.iv_bunk) + ImageView iv_bunk; + @BindView(R.id.iv_paper) + ImageView iv_paper; + @BindView(R.id.iv_test) + ImageView iv_test; + @BindView(R.id.iv_book) + ImageView iv_book; + @BindView(R.id.iv_favorites) + ImageView iv_favorites; + + private View rootView;// 设置为全局的 + private Activity mContext; + + + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + public PrecisionFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment PrecisionFragment. + */ + // TODO: Rename and change types and number of parameters + public static PrecisionFragment newInstance(String param1, String param2) { + PrecisionFragment fragment = new PrecisionFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + Log.e(TAG, "onCreateView: "); + if (null != rootView) { + ViewGroup parent = (ViewGroup) rootView.getParent(); + if (null != parent) { + parent.removeView(rootView); + } + } else { // 如ongoing果rootView为空 ,就实例化该视图 + rootView = inflater.inflate(R.layout.fragment_precision, container, false); + mContext = (Activity) rootView.getContext(); + ButterKnife.bind(this, rootView); + initView(); + } + return rootView; + } + + @Override + public void fetchData() { + + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + rootView = null; + } + + private void initView() { + iv_bunk.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openPrecision("1"); + } + }); + iv_paper.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openPrecision("3"); + } + }); + iv_test.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openPrecision("2"); + } + }); + iv_book.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openPrecision("4"); + } + }); + iv_favorites.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + OpenApkUtils.getInstance().openPrecision("5"); + } + }); + } +} diff --git a/app/src/main/java/com/uiui/zyos/fragment/subject/SubjectFragment.java b/app/src/main/java/com/uiui/zyos/fragment/subject/SubjectFragment.java index fffd3c0..8793097 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/subject/SubjectFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/subject/SubjectFragment.java @@ -23,6 +23,7 @@ import com.uiui.zyos.fragment.complex.ComplexFragment; import com.uiui.zyos.fragment.english.EnglishFragment; import com.uiui.zyos.fragment.math.MathFragment; import com.uiui.zyos.fragment.physics.PhysicsFragment; +import com.uiui.zyos.fragment.precision.PrecisionFragment; import java.util.ArrayList; import java.util.List; @@ -43,10 +44,11 @@ public class SubjectFragment extends BaseFragment { @BindView(R.id.viewPager) ViewPager mViewPager; - private String[] title = new String[]{"语文", "数学", "英语", "物理", "化学", "生物", "综合",}; + private String[] title = new String[]{"精准学", "语文", "数学", "英语", "物理", "化学", "生物", "综合",}; private View rootView; private FragmentActivity mContext; + private PrecisionFragment mPrecisionFragment; private ChineseFragment mChineseFragment; private MathFragment mMathFragment; private EnglishFragment mEnglishFragment; @@ -74,13 +76,15 @@ public class SubjectFragment extends BaseFragment { // Required empty public constructor Log.e(TAG, "SubjectFragment: "); mFragments = new ArrayList<>(); - mChineseFragment =new ChineseFragment(); + mPrecisionFragment = new PrecisionFragment(); + mChineseFragment = new ChineseFragment(); mMathFragment = new MathFragment(); - mEnglishFragment =new EnglishFragment(); - mPhysicsFragment= new PhysicsFragment(); - mChemicalFragment =new ChemicalFragment(); - mBiologyFragment =new BiologyFragment(); - mComplexFragment=new ComplexFragment(); + mEnglishFragment = new EnglishFragment(); + mPhysicsFragment = new PhysicsFragment(); + mChemicalFragment = new ChemicalFragment(); + mBiologyFragment = new BiologyFragment(); + mComplexFragment = new ComplexFragment(); + mFragments.add(mPrecisionFragment); mFragments.add(mChineseFragment); mFragments.add(mMathFragment); mFragments.add(mEnglishFragment); @@ -166,7 +170,7 @@ public class SubjectFragment extends BaseFragment { mFragmentManager = getChildFragmentManager(); mBaseFragmentPagerAdapter = new BaseFragmentPagerAdapter(mFragmentManager, mFragments); mViewPager.setAdapter(mBaseFragmentPagerAdapter); - mViewPager.setOffscreenPageLimit(7); + mViewPager.setOffscreenPageLimit(8); mViewPager.setOnPageChangeListener(mListener); main_sliding_tab_layout.setViewPager(mViewPager, title); } diff --git a/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java b/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java index ee5be5e..20bf621 100644 --- a/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java +++ b/app/src/main/java/com/uiui/zyos/fragment/user/UserFragment.java @@ -297,8 +297,10 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { Log.e(TAG, "setInstalledApp: " + desktopIcons); if (desktopIcons == null || desktopIcons.size() == 0) { iv_nodata.setVisibility(View.VISIBLE); + rv_app.setVisibility(View.INVISIBLE); } else { iv_nodata.setVisibility(View.GONE); + rv_app.setVisibility(View.VISIBLE); mAppAdapter.setDesktopIcons(desktopIcons); } } @@ -306,6 +308,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { private void registerOwnReceiver() { registerTimeReceiver(); registerRefreshReceiver(); + registerUpdateDesktopReceiver(); } private void unregisterOwnReceiver() { @@ -315,6 +318,9 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { if (mRefreshReceiver != null) { mContext.unregisterReceiver(mRefreshReceiver); } + if (updateDesktopReceiver != null) { + mContext.unregisterReceiver(updateDesktopReceiver); + } } @@ -338,7 +344,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - Log.e(TAG, "TimeChangedReceiver:" + action); + Log.e("TimeChangedReceiver", "onReceive:" + action); switch (action) { case Intent.ACTION_DATE_CHANGED: @@ -370,11 +376,39 @@ public class UserFragment extends BaseFragment implements UserContact.UserView { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - Log.e(TAG, "TimeChangedReceiver:" + action); + Log.e("RefreshReceiver", "onReceive: " + action); if (ACTION_REFRESH_BINDING_STATUS.equals(action)) { mPresenter.getSnInfo(); } } } + private UpdateDesktopReceiver updateDesktopReceiver; + + private static final String UPDATE_DESKTOP_ICON_ACTION ="UPDATE_DESKTOP_ICON"; + + private void registerUpdateDesktopReceiver() { + if (updateDesktopReceiver == null) { + updateDesktopReceiver = new UpdateDesktopReceiver(); + } + IntentFilter filter = new IntentFilter(); + filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); + filter.addAction(UPDATE_DESKTOP_ICON_ACTION); + mContext.registerReceiver(updateDesktopReceiver, filter); + } + + class UpdateDesktopReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + Log.e("UpdateDesktopReceiver", "onReceive: " + action); + if (TextUtils.isEmpty(action)){ + return; + } + if (UPDATE_DESKTOP_ICON_ACTION.equals(action)){ + mPresenter.getInstalledApp(); + } + } + } } diff --git a/app/src/main/java/com/uiui/zyos/jxw/JxwPackageConfig.java b/app/src/main/java/com/uiui/zyos/jxw/JxwPackageConfig.java index d67becc..115b68f 100644 --- a/app/src/main/java/com/uiui/zyos/jxw/JxwPackageConfig.java +++ b/app/src/main/java/com/uiui/zyos/jxw/JxwPackageConfig.java @@ -54,16 +54,33 @@ public class JxwPackageConfig { /*背单词*/ public static final String JXW_MEMORIZE_WORDS_PACKAGE_NAME = "com.jxw.wuweijidanci"; public static final String JXW_MEMORIZE_WORDS_CLASS_NAME = "com.jxw.wuweijidanci.ReciteWordActivity"; + /*五维记单词*/ + public static final String JXW_WUWEI_WORDS_CLASS_NAME = "com.jxw.wuweijidanci.MainActivity"; /*口语评测*/ public static final String JXW_ORAL_TEST_PACKAGE_NAME = "com.jxw.singsound"; public static final String JXW_ORAL_TEST_CLASS_NAME = "com.jxw.singsound.ui.SplashActivity"; /*实验室分学科调用*/ - public static final String JXW_laboratory_PACKAGE_NAME = "com.jxw.yuwenxiezuo"; - public static final String JXW_laboratory_CLASS_NAME = "com.jxw.yuwenxiezuo.SYSActivity"; -/*名师风采*/ -public static final String JXW_teacher_PACKAGE_NAME = "com.jxw.teacher.video"; - public static final String JXW_teacher_CLASS_NAME = "com.jxw.teacher.activity.MainActivity"; + public static final String JXW_LABORATORY_PACKAGE_NAME = "com.jxw.yuwenxiezuo"; + public static final String JXW_LABORATORY_CLASS_NAME = "com.jxw.yuwenxiezuo.SYSActivity"; + public static final String JXW_writing_CLASS_NAME = "com.jxw.yuwenxiezuo.MainActivity"; + /*名师风采*/ + public static final String JXW_TEACHER_PACKAGE_NAME = "com.jxw.teacher.video"; + public static final String JXW_TEACHER_CLASS_NAME = "com.jxw.teacher.activity.MainActivity"; /*学王词典*/ - public static final String JXW_dictionary_PACKAGE_NAME = "com.jxw.zncd"; - public static final String JXW_dictionary_CLASS_NAME = "com.jxw.zncd.MainActivity"; -} + public static final String JXW_DICTIONARY_PACKAGE_NAME = "com.jxw.zncd"; + public static final String JXW_DICTIONARY_CLASS_NAME = "com.jxw.zncd.MainActivity"; + + /*认识数学*/ + public static final String JXW_KNOW_MATHEMATICS_PACKAGE_NAME = "com.jxw.studydigital"; + public static final String JXW_KNOW_MATHEMATICS_CLASS_NAME = "com.jxw.studydigital.StuDydigitalActivity"; + /*字母学习*/ + public static final String JXW_LETTER_PACKAGE_NAME = "com.jxw.mskt.video"; + public static final String JXW_LETTER_CLASS_NAME = "com.jxw.mskt.video.VideoTopicActivity"; + /*薄冰语法*/ + public static final String JXW_GRAMMAR_PACKAGE_NAME = "com.jxw.online_study"; + public static final String JXW_Grammar_CLASS_NAME = "com.jxw.online_study.activity.BobingGrammarActivity"; + /*连词成句*/ + public static final String JXW_Conjunctions_PACKAGE_NAME = "com.jxw.liancichengju"; + public static final String JXW_Conjunctions_CLASS_NAME = "com.jxw.liancichengju.MainActivity"; + +} \ No newline at end of file diff --git a/app/src/main/java/com/uiui/zyos/manager/RemoteManager.java b/app/src/main/java/com/uiui/zyos/manager/RemoteManager.java index 095e3ce..052a8ad 100644 --- a/app/src/main/java/com/uiui/zyos/manager/RemoteManager.java +++ b/app/src/main/java/com/uiui/zyos/manager/RemoteManager.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.content.ServiceConnection; import android.os.IBinder; import android.os.RemoteException; +import android.provider.Settings; import android.text.TextUtils; import android.util.Log; @@ -270,4 +271,24 @@ public class RemoteManager { return mapBean.getLongitude() + "," + mapBean.getLatitude(); } } + + public boolean getSnIsActivation() { + try { + return mGetInfoInterface.SnIsActivation(); + } catch (RemoteException e) { + e.printStackTrace(); + Log.e(TAG, "getSnIsActivation: " + e.getMessage()); + int is_activation = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0); + return is_activation == 1; + } + } + + public void setDefaultDesktop() { + try { + mGetInfoInterface.setDefaultLauncher(BuildConfig.APPLICATION_ID); + } catch (RemoteException e) { + Log.e(TAG, "setDefaultDesktop: " + e.getMessage()); + e.printStackTrace(); + } + } } diff --git a/app/src/main/java/com/uiui/zyos/utils/ApkUtils.java b/app/src/main/java/com/uiui/zyos/utils/ApkUtils.java index 5f2a068..921685b 100644 --- a/app/src/main/java/com/uiui/zyos/utils/ApkUtils.java +++ b/app/src/main/java/com/uiui/zyos/utils/ApkUtils.java @@ -63,6 +63,7 @@ public class ApkUtils { this.add("com.joytv.live"); this.add("com.iflytek.speechcloud"); this.add("com.safe.uiui"); + this.add("com.uiui.aios"); }}; private static HashSet excludeClassName = new HashSet() {{ diff --git a/app/src/main/java/com/uiui/zyos/utils/BitmapUtils.java b/app/src/main/java/com/uiui/zyos/utils/BitmapUtils.java new file mode 100644 index 0000000..6ce1589 --- /dev/null +++ b/app/src/main/java/com/uiui/zyos/utils/BitmapUtils.java @@ -0,0 +1,72 @@ +package com.uiui.zyos.utils; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.PixelFormat; +import android.graphics.drawable.AdaptiveIconDrawable; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.Build; + +import java.io.ByteArrayOutputStream; + +public class BitmapUtils { + public static Bitmap Bytes2Bimap(byte[] b) { + if (b.length != 0) { + return BitmapFactory.decodeByteArray(b, 0, b.length); + } else { + return null; + } + } + + public static byte[] Bitmap2Bytes(Bitmap bitmap) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); + byte[] data = baos.toByteArray(); + return data; + } + + /** + * Drawable转换成一个Bitmap + * + * @param drawable drawable对象 + * @return + */ + public static final Bitmap drawableToBitmap(Drawable drawable) { + Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), + drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); + drawable.draw(canvas); + return bitmap; + } + + + public static Bitmap drawableToBitamp(Drawable drawable) { + Bitmap bitmap; + BitmapDrawable bd = (BitmapDrawable) drawable; + bitmap = bd.getBitmap(); + return bitmap; + } + + public static Bitmap getIconBitmap(Context context, Drawable drawable) { + try { + if (drawable == null) { + return null; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && drawable instanceof AdaptiveIconDrawable) { + Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + return Utils.getRoundedBitmap(bitmap, context); + } else { + return Utils.getRoundedBitmap(((BitmapDrawable) drawable).getBitmap(), context); + } + } catch (Exception e) { + return null; + } + } +} diff --git a/app/src/main/java/com/uiui/zyos/utils/IconUtils.java b/app/src/main/java/com/uiui/zyos/utils/IconUtils.java new file mode 100644 index 0000000..c4e50d9 --- /dev/null +++ b/app/src/main/java/com/uiui/zyos/utils/IconUtils.java @@ -0,0 +1,128 @@ +package com.uiui.zyos.utils; + +import android.util.Log; + +import java.util.ArrayList; +import java.util.List; + +public class IconUtils { + public static List appClassNameList = new ArrayList() {{ + this.add("com.uiui.sn");//设别信息 + this.add("com.uiui.appstore");//应用市场 + this.add("com.uiui.weather");//天气 + this.add("com.android.browser");//浏览器 + this.add("com.uiui.browser");//浏览器 + this.add("com.aoleyun.browser");//浏览器 + this.add("com.android.calculator2");//计算器 + this.add("com.android.calendar");//日历 + this.add("com.android.camera");//相机 + this.add("com.mediatek.camera");//相机 + this.add("com.android.camera2");//相机 + this.add("com.android.contacts");//通讯录 + this.add("com.android.deskclock");//时钟 + this.add("com.android.dialer");//电话 + this.add("com.android.dialer");//电话 + this.add("com.android.gallery3d");//图库 + this.add("com.android.mms");//信息 + this.add("com.android.mms.ui");//信息 + this.add("com.android.messaging");//信息 + this.add("com.android.music");//音乐 + this.add("com.android.providers.downloads.ui");//下载 + this.add("com.android.quicksearchbox");//搜索 + this.add("com.android.settings");//设置 + this.add("com.android.soundrecorder");//录音机 + this.add("com.android.stk.StkMain");//sim卡 + this.add("com.android.stk");//sim卡 + this.add("com.android.vdieo");//视频 + this.add("com.mediatek.filemanager");//文件管理 + this.add("com.android.documentsui");//下载 + this.add("com.mediatek.fmradio");//收音机 + this.add("com.android.fmradio");//收音机 + this.add("com.android.email");//电子邮件 +// this.add("com.ss.android.ugc.aweme");//抖音 +// this.add("com.ss.android.article.news");//头条 +// this.add("com.tencent.mm");//微信 + }}; + + public static List appIconList = new ArrayList() {{ + this.add("com_uiui_sn"); + this.add("com_android_appstore"); + this.add("com_uiui_weather"); + this.add("com_android_browser"); + this.add("com_android_browser"); + this.add("com_android_browser"); + this.add("com_android_calculator2"); + this.add("com_android_calendar"); + this.add("com_android_camera"); + this.add("com_android_camera"); + this.add("com_android_camera"); + this.add("com_android_contacts"); + this.add("com_android_deskclock"); + this.add("com_android_dialer"); + this.add("com_android_dialer"); + this.add("com_android_gallery3d_app"); + this.add("com_android_mms_ui"); + this.add("com_android_mms_ui"); + this.add("com_android_mms_ui"); + this.add("com_android_music"); + this.add("com_android_providers_downloads_ui"); + this.add("com_android_quicksearchbox"); + this.add("com_android_settings"); + this.add("com_android_soundrecorder"); + this.add("com_android_stk_stkmain"); + this.add("com_android_stk_stkmain"); + this.add("com_android_vdieo"); + this.add("com_mediatek_filemanager"); + this.add("com_mediatek_filemanager"); + this.add("com_mediatek_fmradio"); + this.add("com_mediatek_fmradio");//收音机 + this.add("com_android_email"); +// this.add("com_android_aweme2"); +// this.add("com_android_news2"); +// this.add("com_tencent_mm2"); + }}; + + public static List appIconList2 = new ArrayList() {{ + this.add("com_uiui_sn2"); + this.add("com_android_appstore2"); + this.add("com_uiui_weather2"); + this.add("com_android_browser2"); + this.add("com_android_browser2"); + this.add("com_android_browser2"); + this.add("com_android_calculator2"); + this.add("com_android_calendar"); + this.add("com_android_camera2"); + this.add("com_android_camera2"); + this.add("com_android_camera2"); + this.add("com_android_contacts"); + this.add("com_android_deskclock"); + this.add("com_android_dialer2"); + this.add("com_android_dialer2"); + this.add("com_android_gallery3d_app2"); + this.add("com_android_mms_ui2"); + this.add("com_android_mms_ui2"); + this.add("com_android_mms_ui2"); + this.add("com_android_music"); + this.add("com_android_providers_downloads_ui"); + this.add("com_android_quicksearchbox"); + this.add("com_android_settings2"); + this.add("com_android_soundrecorder"); + this.add("com_android_stk_stkmain"); + this.add("com_android_stk_stkmain"); + this.add("com_android_vdieo"); + this.add("com_mediatek_filemanager"); + this.add("com_mediatek_filemanager"); + this.add("com_mediatek_fmradio"); + this.add("com_mediatek_fmradio");//收音机 + this.add("com_android_email"); + this.add("com_android_aweme2"); + this.add("com_android_news2"); + this.add("com_tencent_mm2"); + }}; + + static { + Log.e("IconUtils", "appClassNameList size: " + appClassNameList.size()); + Log.e("IconUtils", "appIconList size: " + appIconList.size()); + Log.e("IconUtils", "appIconList2 size: " + appIconList2.size()); + } +} diff --git a/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java b/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java index fd40b0c..6e2427c 100644 --- a/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java +++ b/app/src/main/java/com/uiui/zyos/utils/OpenApkUtils.java @@ -5,6 +5,7 @@ import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; +import android.provider.Settings; import android.text.TextUtils; import android.util.Log; @@ -23,18 +24,18 @@ public class OpenApkUtils { @SuppressLint("StaticFieldLeak") private static OpenApkUtils sInstance; private Context mContext; - private ContentResolver resolver; + private ContentResolver mResolver; private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); private LessonJson mLessonJson; - TimeUtils.ContralTime mContralTime; + private TimeUtils.ContralTime mContralTime; private OpenApkUtils(Context context) { if (context == null) { throw new RuntimeException("Context is NULL"); } this.mContext = context; - this.resolver = context.getContentResolver(); + this.mResolver = context.getContentResolver(); refresh(); } @@ -51,6 +52,15 @@ public class OpenApkUtils { return sInstance; } + private boolean checkActivation() { + int is_activation = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0); + if (is_activation != 1) { + ApkUtils.openPackage(mContext, "com.uiui.zysn"); + ToastUtil.show("请激活设备后使用"); + } + return is_activation == 1; + } + public boolean openPackageWithArgs(String packageName, String className, String name, String args) { if (!ApkUtils.isAvailable(mContext, packageName)) { ToastUtil.show("应用未安装"); @@ -88,7 +98,13 @@ public class OpenApkUtils { } } + /** + * @param pkg + * @return true为能打开 + */ public boolean isCloudLessonMod(String pkg) { + if (mLessonJson==null) + return true; if (mLessonJson.getIs_lesson() == 1) { if (mContralTime == null) { return false; @@ -140,6 +156,9 @@ public class OpenApkUtils { public void openSyncVideo(String args) { + if (!checkActivation()) { + return; + } String packageName = JxwPackageConfig.JXW_VIDEO_PACKAGE_NAME; if (isCloudLessonMod(packageName)) { if (openPackageWithArgs(packageName, JxwPackageConfig.JXW_VIDEO_CLASS_NAME, "StartArgs", args)) { @@ -151,6 +170,9 @@ public class OpenApkUtils { } public void openSynchronousTutoring(String args) { + if (!checkActivation()) { + return; + } String packageName = JxwPackageConfig.JXW_TUTORING_PACKAGE_NAME; String className = JxwPackageConfig.JXW_TUTORING_CLASS_NAME; if (isCloudLessonMod(packageName)) { @@ -163,6 +185,9 @@ public class OpenApkUtils { } public void openSolidifiedData(String args) { + if (!checkActivation()) { + return; + } String packageName = JxwPackageConfig.JXW_TUTORING_PACKAGE_NAME; String className = JxwPackageConfig.JXW_RHETORIC_CLASS_NAME; if (isCloudLessonMod(packageName)) { @@ -175,6 +200,9 @@ public class OpenApkUtils { } public void openComposition() { + if (!checkActivation()) { + return; + } String packageName = JxwPackageConfig.JXW_VIDEO_PACKAGE_NAME; String className = JxwPackageConfig.JXW_COMPOSITION_CLASS_NAME; if (isCloudLessonMod(packageName)) { @@ -187,6 +215,9 @@ public class OpenApkUtils { } public void openQuality() { + if (!checkActivation()) { + return; + } String packageName = JxwPackageConfig.JXW_VIDEO_PACKAGE_NAME; String className = JxwPackageConfig.JXW_Quality_CLASS_NAME; if (isCloudLessonMod(packageName)) { @@ -199,6 +230,9 @@ public class OpenApkUtils { } public void openPrecision(String args) { + if (!checkActivation()) { + return; + } String packageName = JxwPackageConfig.JXW_PRECISION_PACKAGE_NAME; String className = JxwPackageConfig.JXW_PRECISION_CLASS_NAME; if (isCloudLessonMod(packageName)) { @@ -211,6 +245,9 @@ public class OpenApkUtils { } public void openAppWithoutArgs(String packageName, String className) { + if (!checkActivation()) { + return; + } if (isCloudLessonMod(packageName)) { openApp(packageName, className); } else { @@ -219,8 +256,11 @@ public class OpenApkUtils { } public void openLaboratory(String args) { - String packageName = JxwPackageConfig.JXW_laboratory_PACKAGE_NAME; - String className = JxwPackageConfig.JXW_laboratory_CLASS_NAME; + if (!checkActivation()) { + return; + } + String packageName = JxwPackageConfig.JXW_LABORATORY_PACKAGE_NAME; + String className = JxwPackageConfig.JXW_LABORATORY_CLASS_NAME; if (isCloudLessonMod(packageName)) { if (openPackageWithArgs(packageName, className, "StartArgs", args)) { sendRuningApp(packageName); @@ -229,4 +269,57 @@ public class OpenApkUtils { ToastUtil.show("网课模式只允许使用指定应用"); } } + + public void openLetter() { + if (!checkActivation()) { + return; + } + String packageName = JxwPackageConfig.JXW_LETTER_PACKAGE_NAME; + String className = JxwPackageConfig.JXW_LETTER_CLASS_NAME; + if (isCloudLessonMod(packageName)) { + if (openLetterApp(packageName, className)) { + sendRuningApp(packageName); + } + } else { + ToastUtil.show("网课模式只允许使用指定应用"); + } + } + + public boolean openLetterApp(String packageName, String className) { + if (!ApkUtils.isAvailable(mContext, packageName)) { + ToastUtil.show("应用未安装"); + return false; + } + ComponentName cn = new ComponentName(packageName, className); + Intent intent = new Intent(); + intent.setComponent(cn); + intent.putExtra("isTopic", true); + intent.putExtra("isYYGJ", true); + intent.putExtra("url", "http://api4.jiumentongbu.com/api/jwfd/baseapp/url?filePath=专区数据/英语广角/幼儿启蒙/ABC字母/menu.json"); + intent.addCategory(Intent.CATEGORY_LAUNCHER); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + try { + mContext.startActivity(intent); + return true; + } catch (Exception e) { + Log.e(TAG, "openPackageWithArgs: " + e.getMessage()); + } + return false; + } + + public void openChineseWriting() { + if (!checkActivation()) { + return; + } + String packageName = JxwPackageConfig.JXW_LABORATORY_PACKAGE_NAME; + String className = JxwPackageConfig.JXW_writing_CLASS_NAME; + if (isCloudLessonMod(packageName)) { + if (openPackageWithArgs(packageName, className, "StartArgs", "小学")) { + sendRuningApp(packageName); + } + } else { + ToastUtil.show("网课模式只允许使用指定应用"); + } + } + } diff --git a/app/src/main/res/drawable-hdpi/close_icon.png b/app/src/main/res/drawable-hdpi/close_icon.png new file mode 100644 index 0000000..b372d35 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/close_icon.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_browser.png b/app/src/main/res/drawable-hdpi/com_android_browser.png index c569613..e4d1383 100644 Binary files a/app/src/main/res/drawable-hdpi/com_android_browser.png and b/app/src/main/res/drawable-hdpi/com_android_browser.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_calculator2.png b/app/src/main/res/drawable-hdpi/com_android_calculator2.png new file mode 100644 index 0000000..31402e7 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_calculator2.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_calendar.png b/app/src/main/res/drawable-hdpi/com_android_calendar.png new file mode 100644 index 0000000..0065e28 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_calendar.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_contacts.png b/app/src/main/res/drawable-hdpi/com_android_contacts.png new file mode 100644 index 0000000..b204ea0 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_contacts.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_deskclock.png b/app/src/main/res/drawable-hdpi/com_android_deskclock.png new file mode 100644 index 0000000..81bf96f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_deskclock.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_dialer.png b/app/src/main/res/drawable-hdpi/com_android_dialer.png new file mode 100644 index 0000000..5bf5306 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_dialer.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_email.png b/app/src/main/res/drawable-hdpi/com_android_email.png new file mode 100644 index 0000000..2eb7a70 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_email.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_mms_ui.png b/app/src/main/res/drawable-hdpi/com_android_mms_ui.png new file mode 100644 index 0000000..1ac19f2 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_mms_ui.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_music.png b/app/src/main/res/drawable-hdpi/com_android_music.png new file mode 100644 index 0000000..d0b55a9 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_music.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_providers_downloads_ui.png b/app/src/main/res/drawable-hdpi/com_android_providers_downloads_ui.png new file mode 100644 index 0000000..55cd1e9 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_providers_downloads_ui.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_quicksearchbox.png b/app/src/main/res/drawable-hdpi/com_android_quicksearchbox.png new file mode 100644 index 0000000..fd8b051 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_quicksearchbox.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_soundrecorder.png b/app/src/main/res/drawable-hdpi/com_android_soundrecorder.png new file mode 100644 index 0000000..538075f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_soundrecorder.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_stk_stkmain.png b/app/src/main/res/drawable-hdpi/com_android_stk_stkmain.png new file mode 100644 index 0000000..1af7e9e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_stk_stkmain.png differ diff --git a/app/src/main/res/drawable-hdpi/com_android_vdieo.png b/app/src/main/res/drawable-hdpi/com_android_vdieo.png new file mode 100644 index 0000000..a031a22 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_android_vdieo.png differ diff --git a/app/src/main/res/drawable-hdpi/com_mediatek_filemanager.png b/app/src/main/res/drawable-hdpi/com_mediatek_filemanager.png new file mode 100644 index 0000000..2c5128a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_mediatek_filemanager.png differ diff --git a/app/src/main/res/drawable-hdpi/com_mediatek_fmradio.png b/app/src/main/res/drawable-hdpi/com_mediatek_fmradio.png new file mode 100644 index 0000000..f62afdf Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_mediatek_fmradio.png differ diff --git a/app/src/main/res/drawable-hdpi/com_uiui_sn.png b/app/src/main/res/drawable-hdpi/com_uiui_sn.png new file mode 100644 index 0000000..d4d1d10 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/com_uiui_sn.png differ diff --git a/app/src/main/res/drawable-hdpi/icon_dict.png b/app/src/main/res/drawable-hdpi/icon_dict.png index e83d067..4712872 100644 Binary files a/app/src/main/res/drawable-hdpi/icon_dict.png and b/app/src/main/res/drawable-hdpi/icon_dict.png differ diff --git a/app/src/main/res/drawable-hdpi/icon_video.png b/app/src/main/res/drawable-hdpi/icon_video.png index c34aa91..ed90955 100644 Binary files a/app/src/main/res/drawable-hdpi/icon_video.png and b/app/src/main/res/drawable-hdpi/icon_video.png differ diff --git a/app/src/main/res/drawable-xhdpi/chinese_character.png b/app/src/main/res/drawable-xhdpi/chinese_character.png new file mode 100644 index 0000000..0c438f2 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/chinese_character.png differ diff --git a/app/src/main/res/drawable-xhdpi/chinese_punctuation.png b/app/src/main/res/drawable-xhdpi/chinese_punctuation.png new file mode 100644 index 0000000..a564952 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/chinese_punctuation.png differ diff --git a/app/src/main/res/drawable-xhdpi/chinese_reading_improvement.png b/app/src/main/res/drawable-xhdpi/chinese_reading_improvement.png new file mode 100644 index 0000000..f3d65aa Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/chinese_reading_improvement.png differ diff --git a/app/src/main/res/drawable-xhdpi/chinese_rhetoric.png b/app/src/main/res/drawable-xhdpi/chinese_rhetoric.png index 0c438f2..5fc19b7 100644 Binary files a/app/src/main/res/drawable-xhdpi/chinese_rhetoric.png and b/app/src/main/res/drawable-xhdpi/chinese_rhetoric.png differ diff --git a/app/src/main/res/drawable-xhdpi/chinese_treasure.png b/app/src/main/res/drawable-xhdpi/chinese_treasure.png new file mode 100644 index 0000000..b26c989 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/chinese_treasure.png differ diff --git a/app/src/main/res/drawable-xhdpi/chinese_writing.png b/app/src/main/res/drawable-xhdpi/chinese_writing.png new file mode 100644 index 0000000..96abe86 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/chinese_writing.png differ diff --git a/app/src/main/res/drawable-xhdpi/endlish_jcxx_ywzm.png b/app/src/main/res/drawable-xhdpi/endlish_jcxx_ywzm.png new file mode 100644 index 0000000..dd36c29 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/endlish_jcxx_ywzm.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_ice_grammar.png b/app/src/main/res/drawable-xhdpi/english_ice_grammar.png new file mode 100644 index 0000000..f2e1259 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/english_ice_grammar.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_into_sentence.png b/app/src/main/res/drawable-xhdpi/english_into_sentence.png new file mode 100644 index 0000000..418c326 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/english_into_sentence.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_jcxx_yych.png b/app/src/main/res/drawable-xhdpi/english_jcxx_yych.png new file mode 100644 index 0000000..3f12eea Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/english_jcxx_yych.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_jcyy_jcyy.png b/app/src/main/res/drawable-xhdpi/english_jcyy_jcyy.png new file mode 100644 index 0000000..1bd2ff0 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/english_jcyy_jcyy.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_listen_read.png b/app/src/main/res/drawable-xhdpi/english_listen_read.png index 013d22f..01774f9 100644 Binary files a/app/src/main/res/drawable-xhdpi/english_listen_read.png and b/app/src/main/res/drawable-xhdpi/english_listen_read.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_phonetic_alphabet.png b/app/src/main/res/drawable-xhdpi/english_phonetic_alphabet.png new file mode 100644 index 0000000..6cfa528 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/english_phonetic_alphabet.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_precision_learning.png b/app/src/main/res/drawable-xhdpi/english_precision_learning.png index 703c5f4..a848c7f 100644 Binary files a/app/src/main/res/drawable-xhdpi/english_precision_learning.png and b/app/src/main/res/drawable-xhdpi/english_precision_learning.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_sentence_patterns.png b/app/src/main/res/drawable-xhdpi/english_sentence_patterns.png new file mode 100644 index 0000000..01c01d4 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/english_sentence_patterns.png differ diff --git a/app/src/main/res/drawable-xhdpi/english_writing.png b/app/src/main/res/drawable-xhdpi/english_writing.png new file mode 100644 index 0000000..402d97a Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/english_writing.png differ diff --git a/app/src/main/res/drawable-xhdpi/main_background.png b/app/src/main/res/drawable-xhdpi/main_background.png index 47115ac..9206d96 100644 Binary files a/app/src/main/res/drawable-xhdpi/main_background.png and b/app/src/main/res/drawable-xhdpi/main_background.png differ diff --git a/app/src/main/res/drawable-xhdpi/math_encyclopedia.png b/app/src/main/res/drawable-xhdpi/math_encyclopedia.png new file mode 100644 index 0000000..c01e8c5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/math_encyclopedia.png differ diff --git a/app/src/main/res/drawable-xhdpi/math_formula.png b/app/src/main/res/drawable-xhdpi/math_formula.png new file mode 100644 index 0000000..695b82d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/math_formula.png differ diff --git a/app/src/main/res/drawable-xhdpi/math_number.png b/app/src/main/res/drawable-xhdpi/math_number.png new file mode 100644 index 0000000..7b5e821 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/math_number.png differ diff --git a/app/src/main/res/drawable-xhdpi/precision_box.png b/app/src/main/res/drawable-xhdpi/precision_box.png new file mode 100644 index 0000000..7740287 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/precision_box.png differ diff --git a/app/src/main/res/drawable-xhdpi/precision_favorites.png b/app/src/main/res/drawable-xhdpi/precision_favorites.png new file mode 100644 index 0000000..2d4e304 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/precision_favorites.png differ diff --git a/app/src/main/res/drawable-xhdpi/precision_question_bank.png b/app/src/main/res/drawable-xhdpi/precision_question_bank.png new file mode 100644 index 0000000..98a2c57 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/precision_question_bank.png differ diff --git a/app/src/main/res/drawable-xhdpi/precision_stage_test.png b/app/src/main/res/drawable-xhdpi/precision_stage_test.png new file mode 100644 index 0000000..91c3c31 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/precision_stage_test.png differ diff --git a/app/src/main/res/drawable-xhdpi/precision_test_paper.png b/app/src/main/res/drawable-xhdpi/precision_test_paper.png new file mode 100644 index 0000000..f5f2bca Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/precision_test_paper.png differ diff --git a/app/src/main/res/drawable-xhdpi/precision_wrong_book.png b/app/src/main/res/drawable-xhdpi/precision_wrong_book.png new file mode 100644 index 0000000..c70b81d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/precision_wrong_book.png differ diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml index ab3d79f..1eafadc 100644 --- a/app/src/main/res/layout-land/activity_main.xml +++ b/app/src/main/res/layout-land/activity_main.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@drawable/main_background" tools:context=".activity.main.MainActivity"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/dialog_english_basics.xml b/app/src/main/res/layout-land/dialog_english_basics.xml new file mode 100644 index 0000000..e4b5aae --- /dev/null +++ b/app/src/main/res/layout-land/dialog_english_basics.xml @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/foundation_dialog.xml b/app/src/main/res/layout-land/dialog_foundation.xml similarity index 100% rename from app/src/main/res/layout-land/foundation_dialog.xml rename to app/src/main/res/layout-land/dialog_foundation.xml diff --git a/app/src/main/res/layout-land/fragment_chinese.xml b/app/src/main/res/layout-land/fragment_chinese.xml index cc436e8..f5da555 100644 --- a/app/src/main/res/layout-land/fragment_chinese.xml +++ b/app/src/main/res/layout-land/fragment_chinese.xml @@ -110,6 +110,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_4" android:text="查看更多…" + android:visibility="gone" android:textColor="@color/black" android:textSize="@dimen/sp_7" app:layout_constraintEnd_toEndOf="parent" @@ -118,7 +119,8 @@ @@ -316,7 +318,7 @@ android:layout_height="@dimen/dp_32" android:adjustViewBounds="true" android:scaleType="centerInside" - android:src="@drawable/chinese_rhetoric" + android:src="@drawable/chinese_character" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -324,9 +326,9 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout-land/fragment_math.xml b/app/src/main/res/layout-land/fragment_math.xml index d8af1da..a851ffd 100644 --- a/app/src/main/res/layout-land/fragment_math.xml +++ b/app/src/main/res/layout-land/fragment_math.xml @@ -94,8 +94,8 @@ @@ -302,8 +302,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="数学基础" - android:textColor="@color/black" - android:textSize="@dimen/sp_9" + android:textColor="@color/default_text_color" + android:textSize="@dimen/sp_7" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -341,8 +341,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="四则运算" - android:textColor="@color/black" - android:textSize="@dimen/sp_9" + android:textColor="@color/default_text_color" + android:textSize="@dimen/sp_7" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -351,8 +351,133 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout-land/fragment_precision.xml b/app/src/main/res/layout-land/fragment_precision.xml new file mode 100644 index 0000000..3131f53 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_precision.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_subject.xml b/app/src/main/res/layout-land/fragment_subject.xml index 3123dfe..3f9b01f 100644 --- a/app/src/main/res/layout-land/fragment_subject.xml +++ b/app/src/main/res/layout-land/fragment_subject.xml @@ -12,8 +12,9 @@ - - - \ No newline at end of file + android:layout_height="match_parent"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/dialog_chinese.xml b/app/src/main/res/layout-port/dialog_chinese.xml new file mode 100644 index 0000000..6727563 --- /dev/null +++ b/app/src/main/res/layout-port/dialog_chinese.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/dialog_english_basics.xml b/app/src/main/res/layout-port/dialog_english_basics.xml new file mode 100644 index 0000000..e4b5aae --- /dev/null +++ b/app/src/main/res/layout-port/dialog_english_basics.xml @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/dialog_foundation.xml b/app/src/main/res/layout-port/dialog_foundation.xml new file mode 100644 index 0000000..1a70e82 --- /dev/null +++ b/app/src/main/res/layout-port/dialog_foundation.xml @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_biology.xml b/app/src/main/res/layout-port/fragment_biology.xml new file mode 100644 index 0000000..d458f33 --- /dev/null +++ b/app/src/main/res/layout-port/fragment_biology.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_chemical.xml b/app/src/main/res/layout-port/fragment_chemical.xml new file mode 100644 index 0000000..e9c0380 --- /dev/null +++ b/app/src/main/res/layout-port/fragment_chemical.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_chinese.xml b/app/src/main/res/layout-port/fragment_chinese.xml new file mode 100644 index 0000000..f5da555 --- /dev/null +++ b/app/src/main/res/layout-port/fragment_chinese.xml @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_complex.xml b/app/src/main/res/layout-port/fragment_complex.xml new file mode 100644 index 0000000..77a03a8 --- /dev/null +++ b/app/src/main/res/layout-port/fragment_complex.xml @@ -0,0 +1,517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_english.xml b/app/src/main/res/layout-port/fragment_english.xml new file mode 100644 index 0000000..31cf328 --- /dev/null +++ b/app/src/main/res/layout-port/fragment_english.xml @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_main.xml b/app/src/main/res/layout-port/fragment_main.xml new file mode 100644 index 0000000..21fed49 --- /dev/null +++ b/app/src/main/res/layout-port/fragment_main.xml @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_math.xml b/app/src/main/res/layout-port/fragment_math.xml new file mode 100644 index 0000000..a851ffd --- /dev/null +++ b/app/src/main/res/layout-port/fragment_math.xml @@ -0,0 +1,510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_physics.xml b/app/src/main/res/layout-port/fragment_physics.xml new file mode 100644 index 0000000..f4b99df --- /dev/null +++ b/app/src/main/res/layout-port/fragment_physics.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_precision.xml b/app/src/main/res/layout-port/fragment_precision.xml new file mode 100644 index 0000000..3131f53 --- /dev/null +++ b/app/src/main/res/layout-port/fragment_precision.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_subject.xml b/app/src/main/res/layout-port/fragment_subject.xml new file mode 100644 index 0000000..3f9b01f --- /dev/null +++ b/app/src/main/res/layout-port/fragment_subject.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_user.xml b/app/src/main/res/layout-port/fragment_user.xml new file mode 100644 index 0000000..ce3fa4d --- /dev/null +++ b/app/src/main/res/layout-port/fragment_user.xml @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/foundation_dialog.xml b/app/src/main/res/layout/foundation_dialog.xml deleted file mode 100644 index 61ebc12..0000000 --- a/app/src/main/res/layout/foundation_dialog.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index af87c91..926cdbe 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -30,8 +30,9 @@ #f4bea3 #858585 - #1F2133 + #1AFFFFFF #E5B67B #1F2135 + #6d888e