version:1.8.7

fix:
update:去掉butterknife
This commit is contained in:
2024-08-28 15:24:57 +08:00
parent eea0350ac4
commit 7ba8603363
124 changed files with 10906 additions and 10823 deletions

View File

@@ -16,8 +16,8 @@ android {
minSdkVersion 24
targetSdkVersion 29
versionCode 78
versionName "1.8.6"
versionCode 79
versionName "1.8.7"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
@@ -84,7 +84,7 @@ android {
signingConfig signingConfigs.U807
buildConfigField "String", "platform", '"U807"'
manifestPlaceholders = [
AMAP_KEY : "d0cdff4516bb1a788ebdc02aeee75614"
AMAP_KEY : "8200776fc8cad995184a9a3a17a552e4"
]
}
@@ -93,7 +93,7 @@ android {
signingConfig signingConfigs.U807
buildConfigField "String", "platform", '"U807"'
manifestPlaceholders = [
AMAP_KEY : "d0cdff4516bb1a788ebdc02aeee75614"
AMAP_KEY : "8200776fc8cad995184a9a3a17a552e4"
]
}
@@ -172,7 +172,7 @@ dependencies {
implementation "androidx.room:room-runtime:2.4.3"
annotationProcessor "androidx.room:room-compiler:2.4.3"
//内存泄漏检测
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.10'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.14'
//磁盘缓存
implementation 'com.jakewharton:disklrucache:2.0.2'
//glide
@@ -196,9 +196,7 @@ dependencies {
implementation 'com.trello.rxlifecycle4:rxlifecycle-components:4.0.2'
implementation 'com.trello.rxlifecycle4:rxlifecycle-components-preference:4.0.2'
implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle:4.0.2'
//bindView
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
implementation 'com.jakewharton.rxbinding4:rxbinding:4.0.0'
implementation 'com.jeremyliao:live-event-bus-x:1.7.3'
//MMKV

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.uiui.zyos">
<queries>

View File

@@ -27,4 +27,8 @@ interface IGetInfoInterface {
List<String> getAdminApp();
//写入系统数据
boolean putSecureInt(String key, int value);
//写入系统数据
boolean putSystemInt(String key, int value);
//写入系统数据
boolean putSystemFloat(String key, float value);
}

View File

@@ -4,16 +4,15 @@ import android.content.Context;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.uiui.zyos.R;
import com.uiui.zyos.adapter.AddAppAdapter;
import com.uiui.zyos.base.mvp.BaseMvpActivity;
import com.uiui.zyos.base.BaseDataBindingActivity;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.databinding.ActivityAddIconBinding;
import com.uiui.zyos.manager.AppManager;
import com.uiui.zyos.view.RecyclerViewSpacesItemDecoration;
@@ -21,36 +20,27 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
import butterknife.BindView;
import butterknife.ButterKnife;
public class AddIconActivity extends BaseDataBindingActivity {
public class AddIconActivity extends BaseMvpActivity {
@BindView(R.id.iv_back)
ImageView iv_back;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
@BindView(R.id.tv_appsize)
TextView tv_appsize;
private ActivityAddIconBinding mBinding;
private AddAppAdapter mAddAppAdapter;
@Override
public int getLayoutId() {
return R.layout.activity_add_icon;
protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_add_icon);
}
@Override
public void initView() {
ButterKnife.bind(this);
iv_back.setOnClickListener(new View.OnClickListener() {
mBinding.ivBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
recyclerView.setLayoutManager(new GridLayoutManager(this, 6));
mBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 6));
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
@@ -60,9 +50,9 @@ public class AddIconActivity extends BaseMvpActivity {
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 1));//底部间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 20));//右间距
recyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mBinding.recyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mAddAppAdapter = new AddAppAdapter();
recyclerView.setAdapter(mAddAppAdapter);
mBinding.recyclerView.setAdapter(mAddAppAdapter);
}
@Override
@@ -72,9 +62,6 @@ public class AddIconActivity extends BaseMvpActivity {
Set<String> appList = AppManager.getInstance().getFilterAppset();
mAddAppAdapter.setPackageSet(appList);
tv_appsize.setText(String.format(getString(R.string.app_size), desktopIcons.size()));
mBinding.tvAppsize.setText(String.format(getString(R.string.app_size), desktopIcons.size()));
}
}

View File

@@ -11,56 +11,21 @@ import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import com.tuo.customview.VerificationCodeView;
import com.uiui.zyos.R;
import com.uiui.zyos.base.mvp.BaseMvpActivity;
import com.uiui.zyos.base.BaseDataBindingActivity;
import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.databinding.ActivityExitBinding;
import com.uiui.zyos.utils.Utils;
import butterknife.BindView;
import butterknife.ButterKnife;
public class ExitActivity extends BaseDataBindingActivity {
private static final String TAG = "ExitActivity";
public class ExitActivity extends BaseMvpActivity {
private static final String TAG = ExitActivity.class.getSimpleName();
@BindView(R.id.bt_0)
TextView bt0;
@BindView(R.id.bt_1)
TextView bt1;
@BindView(R.id.bt_2)
TextView bt2;
@BindView(R.id.bt_3)
TextView bt3;
@BindView(R.id.bt_4)
TextView bt4;
@BindView(R.id.bt_5)
TextView bt5;
@BindView(R.id.bt_6)
TextView bt6;
@BindView(R.id.bt_7)
TextView bt7;
@BindView(R.id.bt_8)
TextView bt8;
@BindView(R.id.bt_9)
TextView bt9;
@BindView(R.id.bt_del)
TextView bt_del;
@BindView(R.id.bt_confirm)
TextView bt_confirm;
@BindView(R.id.textView)
TextView textView;
@BindView(R.id.tv_hint)
TextView tv_hint;
@BindView(R.id.ll_keyboard)
LinearLayout ll_keyboard;
@BindView(R.id.icv)
VerificationCodeView codeView;
private ActivityExitBinding mBinding;
private SoundPool soundPool;
private int soundId;
@@ -80,22 +45,21 @@ public class ExitActivity extends BaseMvpActivity {
}
@Override
public int getLayoutId() {
return R.layout.activity_exit;
protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_exit);
}
@Override
public void initView() {
ButterKnife.bind(this);
InputMethodManager imm = (InputMethodManager) ExitActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(codeView.getWindowToken(), 0);
codeView.getEditText().setOnClickListener(new View.OnClickListener() {
imm.hideSoftInputFromWindow(mBinding.icv.getWindowToken(), 0);
mBinding.icv.getEditText().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ll_keyboard.setVisibility(View.VISIBLE);
mBinding.llKeyboard.setVisibility(View.VISIBLE);
}
});
codeView.setInputCompleteListener(new VerificationCodeView.InputCompleteListener() {
mBinding.icv.setInputCompleteListener(new VerificationCodeView.InputCompleteListener() {
@Override
public void inputComplete() {
checkPasswd();
@@ -107,34 +71,34 @@ public class ExitActivity extends BaseMvpActivity {
}
});
bt_del.setOnClickListener(new View.OnClickListener() {
mBinding.btDel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tv_hint.setText("");
codeView.clearInputContent();
mBinding.tvHint.setText("");
mBinding.icv.clearInputContent();
}
});
bt_confirm.setOnClickListener(new View.OnClickListener() {
mBinding.btConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checkPasswd();
}
});
bt0.setOnClickListener(view1 -> add(codeView, "0"));
bt1.setOnClickListener(view1 -> add(codeView, "1"));
bt2.setOnClickListener(view1 -> add(codeView, "2"));
bt3.setOnClickListener(view1 -> add(codeView, "3"));
bt4.setOnClickListener(view1 -> add(codeView, "4"));
bt5.setOnClickListener(view1 -> add(codeView, "5"));
bt6.setOnClickListener(view1 -> add(codeView, "6"));
bt7.setOnClickListener(view1 -> add(codeView, "7"));
bt8.setOnClickListener(view1 -> add(codeView, "8"));
bt9.setOnClickListener(view1 -> add(codeView, "9"));
mBinding.bt0.setOnClickListener(view1 -> add(mBinding.icv, "0"));
mBinding.bt1.setOnClickListener(view1 -> add(mBinding.icv, "1"));
mBinding.bt2.setOnClickListener(view1 -> add(mBinding.icv, "2"));
mBinding.bt3.setOnClickListener(view1 -> add(mBinding.icv, "3"));
mBinding.bt4.setOnClickListener(view1 -> add(mBinding.icv, "4"));
mBinding.bt5.setOnClickListener(view1 -> add(mBinding.icv, "5"));
mBinding.bt6.setOnClickListener(view1 -> add(mBinding.icv, "6"));
mBinding.bt7.setOnClickListener(view1 -> add(mBinding.icv, "7"));
mBinding.bt8.setOnClickListener(view1 -> add(mBinding.icv, "8"));
mBinding.bt9.setOnClickListener(view1 -> add(mBinding.icv, "9"));
}
private void checkPasswd() {
String content = codeView.getInputContent();
String content = mBinding.icv.getInputContent();
if (TextUtils.isEmpty(content) || content.length() != 6) {
return;
}
@@ -145,13 +109,13 @@ public class ExitActivity extends BaseMvpActivity {
Utils.exitDesktop(this);
} else {
setEmpty();
tv_hint.setText("密码错误");
mBinding.tvHint.setText("密码错误");
}
} else if (CommonConfig.DEFAULT_PASSWORD.equals(content)) {
Utils.exitDesktop(this);
} else {
setEmpty();
tv_hint.setText("密码错误");
mBinding.tvHint.setText("密码错误");
}
}
@@ -159,8 +123,8 @@ public class ExitActivity extends BaseMvpActivity {
Handler.getMain().postDelayed(new Runnable() {
@Override
public void run() {
codeView.clearInputContent();
tv_hint.setText("");
mBinding.icv.clearInputContent();
mBinding.tvHint.setText("");
}
}, 1000);
}

View File

@@ -4,18 +4,13 @@ import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.Vibrator;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.databinding.DataBindingUtil;
import com.blankj.utilcode.util.FileUtils;
import com.bumptech.glide.Glide;
@@ -23,14 +18,15 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import com.uiui.zyos.R;
import com.uiui.zyos.alarm.AlarmUtils;
import com.uiui.zyos.base.BaseDataBindingActivity;
import com.uiui.zyos.bean.AlarmClockData;
import com.uiui.zyos.bean.BaseResponse;
import com.uiui.zyos.databinding.ActivityNoticeBinding;
import com.uiui.zyos.network.NetInterfaceManager;
import com.uiui.zyos.utils.FileUtil;
import com.uiui.zyos.utils.ScreenUtils;
import com.uiui.zyos.utils.Utils;
import com.uiui.zyos.utils.WakeUpUtils;
import com.uiui.zyos.view.JzvdStdAssert;
import java.io.File;
import java.io.FileInputStream;
@@ -38,63 +34,58 @@ import java.io.IOException;
import java.net.URI;
import java.util.HashMap;
import butterknife.BindView;
import butterknife.ButterKnife;
import cn.jzvd.JZDataSource;
import cn.jzvd.Jzvd;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class NoticeActivity extends AppCompatActivity {
private String TAG = NoticeActivity.class.getSimpleName();
public class NoticeActivity extends BaseDataBindingActivity {
private static final String TAG = "NoticeActivity";
@BindView(R.id.tv_title)
TextView tv_title;
@BindView(R.id.bt_ok)
Button bt_ok;
@BindView(R.id.cl_voice)
ConstraintLayout cl_voice;
@BindView(R.id.cl_vp)
ConstraintLayout cl_vp;
@BindView(R.id.jz_video)
JzvdStdAssert jz_video;
@BindView(R.id.iv_dictation)
ImageView imageView;
private ActivityNoticeBinding mBinding;
private AlarmClockData alarmClockData;
private AlarmClockData mAlarmClockData;
private int code;
private MediaPlayer mediaPlayer;
private PowerManager pm;
private PowerManager.WakeLock wakeLock;
private MediaPlayer mMediaPlayer;
private PowerManager mPowerManager;
private PowerManager.WakeLock mWakeLock;
private AudioManager audioManager;
private Vibrator vibrator;
private Vibrator mVibrator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notice);
ButterKnife.bind(this);
protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_notice);
}
@Override
protected void initView() {
}
@Override
protected void initData() {
Intent intent = getIntent();
code = intent.getIntExtra("id", -1);
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "WakeAndLock");
vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = mPowerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "WakeAndLock");
mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
if (code == -1) {
finish();
} else {
wakeLock.acquire(60 * 1000L);
mWakeLock.acquire(60 * 1000L);
long[] pattern = {1000, 5000, 1000, 5000};
vibrator.vibrate(pattern, 0);
mVibrator.vibrate(pattern, 0);
WakeUpUtils.wakeUpAndUnlockScreen(this);
HashMap<Integer, AlarmClockData> oldData = AlarmUtils.getInstance().getOldData();
alarmClockData = oldData.get(code);
if (alarmClockData == null) {
mAlarmClockData = oldData.get(code);
if (mAlarmClockData == null) {
finish();
}
Log.e(TAG, "onCreate: " + alarmClockData);
showData(alarmClockData);
Log.e(TAG, "onCreate: " + mAlarmClockData);
showData(mAlarmClockData);
}
}
@@ -102,8 +93,8 @@ public class NoticeActivity extends AppCompatActivity {
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, AudioManager.FLAG_PLAY_SOUND);
tv_title.setText(alarmClockData.getTitle());
bt_ok.setOnClickListener(new View.OnClickListener() {
mBinding.tvTitle.setText(alarmClockData.getTitle());
mBinding.btOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
HashMap<Integer, AlarmClockData> oldData = AlarmUtils.getInstance().getOldData();
@@ -145,45 +136,45 @@ public class NoticeActivity extends AppCompatActivity {
String filePath = alarmClockData.getFile();
if (!TextUtils.isEmpty(voiceUrl)) {
cl_voice.setVisibility(View.VISIBLE);
mBinding.clVoice.setVisibility(View.VISIBLE);
String fileName = Utils.getFileNamefromURL(voiceUrl);
File file = new File(Utils.getDownLoadPath(NoticeActivity.this) + fileName);
String fileMD5 = FileUtils.getFileMD5ToString(file);
// if (!md5.equals(fileMD5)) {
// // TODO: 2021/12/16
// } else {
mediaPlayer = new MediaPlayer();
mMediaPlayer = new MediaPlayer();
try {
// 切歌之前先重置,释放掉之前的资源
mediaPlayer.reset();
mMediaPlayer.reset();
FileInputStream fis = new FileInputStream(file);
mediaPlayer.setDataSource(fis.getFD());
mMediaPlayer.setDataSource(fis.getFD());
// 设置播放源
// mediaPlayer.setDataSource(file.getAbsolutePath());
// 开始播放前的准备工作,加载多媒体资源,获取相关信息
mediaPlayer.prepare();
mMediaPlayer.prepare();
// 开始播放
mediaPlayer.start();
mMediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "showData: " + e.getMessage());
}
// }
} else {
cl_voice.setVisibility(View.GONE);
mBinding.clVoice.setVisibility(View.GONE);
}
if (!TextUtils.isEmpty(filePath)) {
cl_vp.setVisibility(View.VISIBLE);
mBinding.clVp.setVisibility(View.VISIBLE);
String fileType = FileUtil.getFileType(filePath);
Log.e(TAG, "showData: " + fileType);
if (FileUtil.isPictureFile(fileType)) {
jz_video.setVisibility(View.GONE);
imageView.setVisibility(View.VISIBLE);
mBinding.jzVideo.setVisibility(View.GONE);
mBinding.ivDictation.setVisibility(View.VISIBLE);
RequestOptions options = new RequestOptions().transform(new RoundedCorners(ScreenUtils.dip2px(this, 16F)));
Glide.with(NoticeActivity.this).load(filePath).apply(options).into(imageView);
Glide.with(NoticeActivity.this).load(filePath).apply(options).into(mBinding.ivDictation);
} else if (FileUtil.isVideoFile(fileType)) {
jz_video.setVisibility(View.VISIBLE);
imageView.setVisibility(View.GONE);
mBinding.jzVideo.setVisibility(View.VISIBLE);
mBinding.ivDictation.setVisibility(View.GONE);
String fileName = filePath.substring(filePath.lastIndexOf("/") + 1, filePath.length());
String realPath = Utils.getDownLoadPath(NoticeActivity.this) + fileName;
File file = new File(realPath);
@@ -197,13 +188,13 @@ public class NoticeActivity extends AppCompatActivity {
jzDataSource = new JZDataSource(uri.toString(), "");
}
jzDataSource.looping = true;
jz_video.setUp(jzDataSource, Jzvd.SCREEN_NORMAL);
jz_video.startPreloading();
jz_video.startVideoAfterPreloading();
jz_video.startVideo();
mBinding.jzVideo.setUp(jzDataSource, Jzvd.SCREEN_NORMAL);
mBinding.jzVideo.startPreloading();
mBinding.jzVideo.startVideoAfterPreloading();
mBinding.jzVideo.startVideo();
}
} else {
cl_vp.setVisibility(View.GONE);
mBinding.clVp.setVisibility(View.GONE);
}
}
@@ -211,12 +202,12 @@ public class NoticeActivity extends AppCompatActivity {
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
if (mMediaPlayer != null) {
if (mMediaPlayer.isPlaying()) {
mMediaPlayer.stop();
}
mediaPlayer.release();
mediaPlayer = null;
mMediaPlayer.release();
mMediaPlayer = null;
}
}

View File

@@ -10,55 +10,20 @@ import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import com.tuo.customview.VerificationCodeView;
import com.uiui.zyos.R;
import com.uiui.zyos.base.mvp.BaseMvpActivity;
import com.uiui.zyos.base.BaseDataBindingActivity;
import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.databinding.ActivityPasswdBinding;
import butterknife.BindView;
import butterknife.ButterKnife;
public class PasswordActivity extends BaseDataBindingActivity {
private static final String TAG = "PasswordActivity";
public class PasswordActivity extends BaseMvpActivity {
private static final String TAG = PasswordActivity.class.getSimpleName();
@BindView(R.id.bt_0)
TextView bt0;
@BindView(R.id.bt_1)
TextView bt1;
@BindView(R.id.bt_2)
TextView bt2;
@BindView(R.id.bt_3)
TextView bt3;
@BindView(R.id.bt_4)
TextView bt4;
@BindView(R.id.bt_5)
TextView bt5;
@BindView(R.id.bt_6)
TextView bt6;
@BindView(R.id.bt_7)
TextView bt7;
@BindView(R.id.bt_8)
TextView bt8;
@BindView(R.id.bt_9)
TextView bt9;
@BindView(R.id.bt_del)
TextView bt_del;
@BindView(R.id.bt_confirm)
TextView bt_confirm;
@BindView(R.id.textView)
TextView textView;
@BindView(R.id.tv_hint)
TextView tv_hint;
@BindView(R.id.ll_keyboard)
LinearLayout ll_keyboard;
@BindView(R.id.icv)
VerificationCodeView codeView;
private ActivityPasswdBinding mBinding;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -67,22 +32,21 @@ public class PasswordActivity extends BaseMvpActivity {
}
@Override
public int getLayoutId() {
return R.layout.activity_passwd;
protected void initDataBinding() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_passwd);
}
@Override
public void initView() {
ButterKnife.bind(this);
InputMethodManager imm = (InputMethodManager) PasswordActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(codeView.getWindowToken(), 0);
codeView.getEditText().setOnClickListener(new View.OnClickListener() {
imm.hideSoftInputFromWindow(mBinding.icv.getWindowToken(), 0);
mBinding.icv.getEditText().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ll_keyboard.setVisibility(View.VISIBLE);
mBinding.llKeyboard.setVisibility(View.VISIBLE);
}
});
codeView.setInputCompleteListener(new VerificationCodeView.InputCompleteListener() {
mBinding.icv.setInputCompleteListener(new VerificationCodeView.InputCompleteListener() {
@Override
public void inputComplete() {
checkPasswd();
@@ -94,34 +58,34 @@ public class PasswordActivity extends BaseMvpActivity {
}
});
bt_del.setOnClickListener(new View.OnClickListener() {
mBinding.btDel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tv_hint.setText("");
codeView.clearInputContent();
mBinding.tvHint.setText("");
mBinding.icv.clearInputContent();
}
});
bt_confirm.setOnClickListener(new View.OnClickListener() {
mBinding.btConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checkPasswd();
}
});
bt0.setOnClickListener(view1 -> add(codeView, "0"));
bt1.setOnClickListener(view1 -> add(codeView, "1"));
bt2.setOnClickListener(view1 -> add(codeView, "2"));
bt3.setOnClickListener(view1 -> add(codeView, "3"));
bt4.setOnClickListener(view1 -> add(codeView, "4"));
bt5.setOnClickListener(view1 -> add(codeView, "5"));
bt6.setOnClickListener(view1 -> add(codeView, "6"));
bt7.setOnClickListener(view1 -> add(codeView, "7"));
bt8.setOnClickListener(view1 -> add(codeView, "8"));
bt9.setOnClickListener(view1 -> add(codeView, "9"));
mBinding.bt0.setOnClickListener(view1 -> add(mBinding.icv, "0"));
mBinding.bt1.setOnClickListener(view1 -> add(mBinding.icv, "1"));
mBinding.bt2.setOnClickListener(view1 -> add(mBinding.icv, "2"));
mBinding.bt3.setOnClickListener(view1 -> add(mBinding.icv, "3"));
mBinding.bt4.setOnClickListener(view1 -> add(mBinding.icv, "4"));
mBinding.bt5.setOnClickListener(view1 -> add(mBinding.icv, "5"));
mBinding.bt6.setOnClickListener(view1 -> add(mBinding.icv, "6"));
mBinding.bt7.setOnClickListener(view1 -> add(mBinding.icv, "7"));
mBinding.bt8.setOnClickListener(view1 -> add(mBinding.icv, "8"));
mBinding.bt9.setOnClickListener(view1 -> add(mBinding.icv, "9"));
}
private void checkPasswd() {
String content = codeView.getInputContent();
String content = mBinding.icv.getInputContent();
if (TextUtils.isEmpty(content) || content.length() != 6) {
return;
}
@@ -133,14 +97,14 @@ public class PasswordActivity extends BaseMvpActivity {
finish();
} else {
setEmpty();
tv_hint.setText("密码错误");
mBinding.tvHint.setText("密码错误");
}
} else if (CommonConfig.DEFAULT_PASSWORD.equals(content)) {
startActivity(new Intent(PasswordActivity.this, AddIconActivity.class));
finish();
} else {
setEmpty();
tv_hint.setText("密码错误");
mBinding.tvHint.setText("密码错误");
}
}
@@ -148,8 +112,8 @@ public class PasswordActivity extends BaseMvpActivity {
Handler.getMain().postDelayed(new Runnable() {
@Override
public void run() {
codeView.clearInputContent();
tv_hint.setText("");
mBinding.icv.clearInputContent();
mBinding.tvHint.setText("");
}
}, 1000);
}

View File

@@ -17,10 +17,8 @@ import android.view.KeyEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
@@ -33,8 +31,9 @@ import com.tencent.mmkv.MMKV;
import com.uiui.zyos.BuildConfig;
import com.uiui.zyos.R;
import com.uiui.zyos.activity.ExitActivity;
import com.uiui.zyos.base.mvp.BaseMvpActivity;
import com.uiui.zyos.base.mvvm.BaseMvvmActivity;
import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.databinding.ActivityMainBinding;
import com.uiui.zyos.dialog.PrivacyPolicyDialog;
import com.uiui.zyos.fragment.subject.SubjectFragment;
import com.uiui.zyos.fragment.user.UserFragment;
@@ -47,79 +46,43 @@ import com.uiui.zyos.utils.Utils;
import com.uiui.zyos.view.ScaleCircleNavigator;
import com.uiui.zyos.view.viewpager.BaseFragmentPagerAdapter;
import net.lucode.hackware.magicindicator.MagicIndicator;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity extends BaseMvpActivity implements MainContact.MainView, RemoteManager.ConnectedListener {
private static final String TAG = MainActivity.class.getSimpleName();
@BindView(R.id.viewPager)
ViewPager mViewPager;
@BindView(R.id.magicIndicator)
MagicIndicator mMagicIndicator;
@BindView(R.id.cl_0)
ConstraintLayout cl_0;
@BindView(R.id.cl_1)
ConstraintLayout cl_1;
@BindView(R.id.cl_2)
ConstraintLayout cl_2;
@BindView(R.id.cl_3)
ConstraintLayout cl_3;
@BindView(R.id.cl_4)
ConstraintLayout cl_4;
@BindView(R.id.cl_5)
ConstraintLayout cl_5;
@BindView(R.id.cl_6)
ConstraintLayout cl_6;
@BindView(R.id.cl_7)
ConstraintLayout cl_7;
@BindView(R.id.cl_8)
ConstraintLayout cl_8;
@BindView(R.id.cl_9)
ConstraintLayout cl_9;
@BindView(R.id.iv_robot)
ImageView iv_robot;
public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBinding> implements RemoteManager.ConnectedListener {
private static final String TAG = "MainActivity";
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private MainAPresenter mPresenter;
// private HomeWatcher mHomeWatcher;
private ScaleCircleNavigator scaleCircleNavigator;
private FragmentManager mFragmentManager;
private BaseFragmentPagerAdapter mBaseFragmentPagerAdapter;
private List<Fragment> mFragments;
private UserFragment mUserFragment;
private SubjectFragment mSubjectFragment;
private int defaultCurrent = 1;
@Override
public void onRemoteConnected() {
Log.e(TAG, "onConnected: ");
setDefaultDesktop();
}
@Override
public int getLayoutId() {
return R.layout.activity_main;
}
private void hideSystemUI() {
// Enables regular immersive mode.
// For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
// Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
// | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN);
@Override
protected void initDataBinding() {
mViewModel.setCtx(this);
mViewModel.setVDBinding(mViewDataBinding);
mViewModel.setLifecycle(getLifecycleSubject());
mViewDataBinding.setClick(new BtnClick());
}
@Override
@@ -133,11 +96,8 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
if (Build.VERSION.SDK_INT >= 33) {
hideSystemUI();
}
ButterKnife.bind(this);
// toggleNotificationListenerService(this);
mPresenter = new MainAPresenter(this);
mPresenter.attachView(this);
mPresenter.setLifecycle(getLifecycleSubject());
RemoteManager.setListener(this);
Utils.getAndroiodScreenProperty(this);
@@ -154,8 +114,8 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
}
mBaseFragmentPagerAdapter = new BaseFragmentPagerAdapter(mFragmentManager, mFragments);
mViewPager.setAdapter(mBaseFragmentPagerAdapter);
mViewPager.setCurrentItem(defaultCurrent);
mViewDataBinding.viewPager.setAdapter(mBaseFragmentPagerAdapter);
mViewDataBinding.viewPager.setCurrentItem(defaultCurrent);
scaleCircleNavigator = new ScaleCircleNavigator(this);
scaleCircleNavigator.setCircleCount(1 + mSubjectFragment.getFragmentSize());
@@ -168,34 +128,34 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
}
});
mMagicIndicator.setNavigator(scaleCircleNavigator);
mViewDataBinding.magicIndicator.setNavigator(scaleCircleNavigator);
// ViewPagerHelper.bind(mMagicIndicator, mViewPager);
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);
mViewDataBinding.magicIndicator.onPageScrolled(position + 1, positionOffset, positionOffsetPixels);
}
@Override
public void onPageSelected(int position) {
// Log.e("mSubjectFragment", "onPageSelected: position = " + position);
mMagicIndicator.onPageSelected(position + 1);
mViewDataBinding.magicIndicator.onPageSelected(position + 1);
}
@Override
public void onPageScrollStateChanged(int state) {
// Log.e("mSubjectFragment", "onPageSelected: state = " + state);
mMagicIndicator.onPageScrollStateChanged(state);
mViewDataBinding.magicIndicator.onPageScrollStateChanged(state);
}
});
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
mViewDataBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// Log.e("mViewPager", "onPageScrolled: position = " + position + " positionOffset = " + positionOffset + " positionOffsetPixels = " + positionOffsetPixels);
if (!(position == 1 && positionOffsetPixels == 0)) {
if (position <= 1) {
mMagicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels);
mViewDataBinding.magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
}
}
@@ -204,115 +164,21 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
public void onPageSelected(int position) {
// Log.e("mViewPager", "onPageSelected: position = " + position);
if (position <= 1) {
mMagicIndicator.onPageSelected(position);
mViewDataBinding.magicIndicator.onPageSelected(position);
}
}
@Override
public void onPageScrollStateChanged(int state) {
// Log.e("mViewPager", "onPageSelected: state = " + state);
mMagicIndicator.onPageScrollStateChanged(state);
mViewDataBinding.magicIndicator.onPageScrollStateChanged(state);
}
});
if (mFragments.size() > 1) {
mViewPager.setCurrentItem(defaultCurrent);
mMagicIndicator.onPageSelected(defaultCurrent);
mViewDataBinding.viewPager.setCurrentItem(defaultCurrent);
mViewDataBinding.magicIndicator.onPageSelected(defaultCurrent);
}
iv_robot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_VOICE_PACKAGE_NAME, JxwPackageConfig.JXW_VOICE_CLASS_NAME);
}
});
cl_0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// OpenApkUtils.getInstance().openApp("com.uiui.zyappstore", "com.uiui.zyappstore.activity.MainActivity");
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_EXAMSYSTEM_NAME, JxwPackageConfig.JXW_EXAMSYSTEM_CLASS);
}
});
cl_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openApp("com.uiui.zybrowser", "com.uiui.zybrowser.activity.main.MainActivity");
}
});
cl_2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// OpenApkUtils.getInstance().openApp("com.android.documentsui");
OpenApkUtils.getInstance().openApp("com.uiui.zy", "com.uiui.zy.activity.main.MainActivity");
}
});
cl_3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openApp("com.mediatek.camera");
}
});
cl_4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Intent intent = new Intent(Settings.ACTION_SETTINGS);
// startActivity(intent);
// int activated = Settings.Secure.getInt(getContentResolver(), Settings.Secure.NIGHT_DISPLAY_ACTIVATED, 0);
// if (RemoteManager.getInstance().putSecureInt(Settings.Secure.NIGHT_DISPLAY_ACTIVATED, activated == 0 ? 1 : 0)) {
// Log.e(TAG, "onClick: putSecureInt successfully");
// } else {
// Log.e(TAG, "onClick: putSecureInt failed");
// }
ComponentName cn = new ComponentName(RemoteManager.SN_PACKAGE_NAME, "com.uiui.zy.activity.EyeProtectionActivity");
Intent intent = new Intent();
intent.setComponent(cn);
try {
startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "onClick: " + e.getMessage());
Toaster.show("应用未安装");
}
}
});
cl_5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// OpenApkUtils.getInstance().openApp("com.android.gallery3d");
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_YOUER_PACKAGE_NAME, JxwPackageConfig.JXW_YOUER_CLASS_NAME);
}
});
cl_6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openQuality();
}
});
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);
}
});
cl_8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME, JxwPackageConfig.JXW_LAUNCHER_UPDATE_CLASS_NAME);
}
});
cl_9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("Receiver_Refresh_Password_Action");
intent.setPackage("com.uiui.zy");
sendBroadcast(intent);
int is_activation = Settings.Global.getInt(getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0);
if (is_activation == 1) {
startActivity(new Intent(MainActivity.this, ExitActivity.class));
} else {
Utils.exitDesktop(MainActivity.this);
}
}
});
// ComponentName cn = new ComponentName("com.jxw.mskt.video", "com.jxw.mskt.video.VideoDownload");
// Intent intent = new Intent();
// intent.setComponent(cn);
@@ -335,10 +201,18 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
registmUpdateAddressReceiver();
}
@Override
public void onConnected() {
Log.e(TAG, "onConnected: ");
setDefaultDesktop();
private void hideSystemUI() {
// Enables regular immersive mode.
// For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
// Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
// | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN);
}
private void setDefaultDesktop() {
@@ -365,11 +239,11 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
super.onWindowFocusChanged(hasFocus);
Log.e(TAG, "onWindowFocusChanged: hasFocus = " + hasFocus);
if (hasFocus) {//表示渲染结束
if (mViewPager != null) {
mViewPager.postDelayed(new Runnable() {
if (mViewDataBinding.viewPager != null) {
mViewDataBinding.viewPager.postDelayed(new Runnable() {
@Override
public void run() {
mViewPager.setOffscreenPageLimit(4);
mViewDataBinding.viewPager.setOffscreenPageLimit(4);
}
}, 1987);
}
@@ -435,8 +309,8 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
protected void onRestart() {
super.onRestart();
Log.e(TAG, "onRestart: ");
mPresenter.sendAPPUsage();
mPresenter.sendRunningInfo();
mViewModel.sendAPPUsage();
mViewModel.sendRunningInfo();
}
@Override
@@ -454,7 +328,6 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
@Override
protected void onDestroy() {
super.onDestroy();
mPresenter.detachView();
// if (mHomeWatcher != null) {
// mHomeWatcher.stopWatch();// 在销毁时停止监听,不然会报错的。
// }
@@ -713,13 +586,81 @@ public class MainActivity extends BaseMvpActivity implements MainContact.MainVie
}
}
@Override
public void sendAPPUsageFinish() {
public class BtnClick {
public void openRobot(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_VOICE_PACKAGE_NAME, JxwPackageConfig.JXW_VOICE_CLASS_NAME);
}
@Override
public void sendRunningInfoFinish() {
public void open0(View view) {
// OpenApkUtils.getInstance().openApp("com.uiui.zyappstore", "com.uiui.zyappstore.activity.MainActivity");
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_EXAMSYSTEM_NAME, JxwPackageConfig.JXW_EXAMSYSTEM_CLASS);
}
public void open1(View view) {
OpenApkUtils.getInstance().openApp("com.uiui.zybrowser", "com.uiui.zybrowser.activity.main.MainActivity");
}
public void open2(View view) {
// OpenApkUtils.getInstance().openApp("com.android.documentsui");
OpenApkUtils.getInstance().openApp("com.uiui.zy", "com.uiui.zy.activity.main.MainActivity");
}
public void open3(View view) {
OpenApkUtils.getInstance().openApp("com.mediatek.camera");
}
public void open4(View view) {
// Intent intent = new Intent(Settings.ACTION_SETTINGS);
// startActivity(intent);
// int activated = Settings.Secure.getInt(getContentResolver(), Settings.Secure.NIGHT_DISPLAY_ACTIVATED, 0);
// if (RemoteManager.getInstance().putSecureInt(Settings.Secure.NIGHT_DISPLAY_ACTIVATED, activated == 0 ? 1 : 0)) {
// Log.e(TAG, "onClick: putSecureInt successfully");
// } else {
// Log.e(TAG, "onClick: putSecureInt failed");
// }
ComponentName cn = new ComponentName(RemoteManager.SN_PACKAGE_NAME, "com.uiui.zy.activity.EyeProtectionActivity");
Intent intent = new Intent();
intent.setComponent(cn);
try {
startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "onClick: " + e.getMessage());
Toaster.show("应用未安装");
}
}
public void open5(View view) {
// OpenApkUtils.getInstance().openApp("com.android.gallery3d");
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_YOUER_PACKAGE_NAME, JxwPackageConfig.JXW_YOUER_CLASS_NAME);
}
public void open6(View view) {
OpenApkUtils.getInstance().openQuality();
}
public void open7(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_DICTIONARY_PACKAGE_NAME, JxwPackageConfig.JXW_DICTIONARY_CLASS_NAME);
}
public void open8(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME, JxwPackageConfig.JXW_LAUNCHER_UPDATE_CLASS_NAME);
}
public void open9(View view) {
Intent intent = new Intent("Receiver_Refresh_Password_Action");
intent.setPackage("com.uiui.zy");
sendBroadcast(intent);
int is_activation = Settings.Global.getInt(getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0);
if (is_activation == 1) {
startActivity(new Intent(MainActivity.this, ExitActivity.class));
} else {
Utils.exitDesktop(MainActivity.this);
}
}
public void openAppStore(View view) {
ApkUtils.openPackage(MainActivity.this, "com.uiui.appstore");
}
}
}

View File

@@ -1,18 +0,0 @@
package com.uiui.zyos.activity.main;
import com.uiui.zyos.base.mvp.BasePresenter;
import com.uiui.zyos.base.mvp.BaseView;
public class MainContact {
public interface Presenter extends BasePresenter<MainView> {
/*上传正在运行的APP*/
void sendAPPUsage();
/*上传后台运行的APP*/
void sendRunningInfo();
}
public interface MainView extends BaseView {
void sendAPPUsageFinish();
void sendRunningInfoFinish();
}
}

View File

@@ -1,6 +1,5 @@
package com.uiui.zyos.activity.main;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
@@ -8,7 +7,9 @@ import com.google.gson.JsonObject;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiui.zyos.BuildConfig;
import com.uiui.zyos.base.mvvm.BaseViewModel;
import com.uiui.zyos.bean.BaseResponse;
import com.uiui.zyos.databinding.ActivityMainBinding;
import com.uiui.zyos.manager.RemoteManager;
import com.uiui.zyos.network.NetInterfaceManager;
import com.uiui.zyos.utils.ActivationUtil;
@@ -19,42 +20,23 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class MainAPresenter implements MainContact.Presenter {
private static final String TAG = MainAPresenter.class.getSimpleName();
public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEvent> {
private Context mContext;
private MainContact.MainView mView;
private static final String TAG = "MainViewModel";
private BehaviorSubject<ActivityEvent> lifecycle;
void setLifecycle(BehaviorSubject<ActivityEvent> lifecycle) {
this.lifecycle = lifecycle;
}
public BehaviorSubject<ActivityEvent> getLifecycle() {
return lifecycle;
}
MainAPresenter(Context context) {
this.mContext = context;
Log.e(TAG, "MainAPresenter: " + context.getClass());
@Override
public ActivityMainBinding getVDBinding() {
return binding;
}
@Override
public void attachView(MainContact.MainView view) {
this.mView = view;
public void onDestroy() {
}
@Override
public void detachView() {
this.mView = null;
}
@Override
public void sendAPPUsage() {
boolean activation = ActivationUtil.isActivation(mContext);
boolean activation = ActivationUtil.isActivation(getCtx());
if (!activation) {
return;
}
@@ -62,18 +44,18 @@ public class MainAPresenter implements MainContact.Presenter {
String packagename = AppUsedTimeUtils.getInstance().getAppPackageName();
Log.e(TAG, "onRestart packagename == " + packagename);
if (!TextUtils.isEmpty(packagename)) {
Log.e(TAG, "onRestart: " + ApkUtils.getAppNameByPackage(mContext, packagename));
Log.e(TAG, "onRestart: " + ApkUtils.getAppNameByPackage(getCtx(), packagename));
Log.e(TAG, "onRestart: " + packagename);
NetInterfaceManager.getInstance()
.getAppUsageRecordControl()
.sendappUsageRecord(RemoteManager.getInstance().getSerial(),
ApkUtils.getAppNameByPackage(mContext, packagename),
ApkUtils.getAppNameByPackage(getCtx(), packagename),
packagename,
AppUsedTimeUtils.getInstance().getStartTime() / 1000,
AppUsedTimeUtils.getInstance().getEndTime() / 1000)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(Disposable d) {
@@ -94,18 +76,15 @@ public class MainAPresenter implements MainContact.Presenter {
@Override
public void onComplete() {
Log.e("sendAPPUsage", "onComplete: ");
mView.sendAPPUsageFinish();
}
});
} else {
Log.e("onRestart", "app = null" + packagename);
mView.sendAPPUsageFinish();
Log.e("sendAPPUsage", "app = null" + packagename);
}
}
@Override
public void sendRunningInfo() {
boolean activation = ActivationUtil.isActivation(mContext);
boolean activation = ActivationUtil.isActivation(getCtx());
if (!activation) {
return;
}
@@ -114,18 +93,15 @@ public class MainAPresenter implements MainContact.Presenter {
long time = AppUsedTimeUtils.getInstance().getStartTime();
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("app_package", BuildConfig.APPLICATION_ID);
jsonObject.addProperty("version_name", ApkUtils.getAPPVersionName(mContext, BuildConfig.APPLICATION_ID));
jsonObject.addProperty("version_name", ApkUtils.getAPPVersionName(getCtx(), BuildConfig.APPLICATION_ID));
jsonObject.addProperty("start_time", time / 1000);
String jsonString = jsonObject.toString();
Log.e(TAG, "sendRunningInfo: " + jsonString);
AppUsedTimeUtils.getInstance().sendRunningApp(new AppUsedTimeUtils.RunningAppCallback() {
@Override
public void onComplete() {
if (mView != null) {
mView.sendRunningInfoFinish();
}
Log.e("sendRunningInfo", "onComplete: " );
}
});
}
}

View File

@@ -9,56 +9,40 @@ import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.uiui.zyos.R;
import com.uiui.zyos.adapter.AppAdapter;
import com.uiui.zyos.base.mvp.BaseMvpActivity;
import com.uiui.zyos.base.mvvm.BaseMvvmActivity;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.databinding.ActivityMoreappBinding;
import com.uiui.zyos.view.RecyclerViewSpacesItemDecoration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MoreAppActivity extends BaseMvvmActivity<MoreAppViewModel, ActivityMoreappBinding> {
public class MoreAppActivity extends BaseMvpActivity implements MoreContact.MoreView {
@BindView(R.id.iv_back)
ImageView iv_back;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
@BindView(R.id.tv_appsize)
TextView tv_appsize;
private MorePresenter mPresenter;
private AppAdapter mAppAdapter;
@Override
public int getLayoutId() {
return R.layout.activity_moreapp;
}
@Override
public void initView() {
ButterKnife.bind(this);
mPresenter = new MorePresenter(this);
mPresenter.attachView(this);
mPresenter.setLifecycle(getLifecycleSubject());
iv_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
protected void initDataBinding() {
mViewModel.setCtx(this);
mViewModel.setVDBinding(mViewDataBinding);
mViewModel.setLifecycle(getLifecycleSubject());
mViewDataBinding.setClick(new BtnClick());
}
});
recyclerView.setLayoutManager(new GridLayoutManager(this, 6));
@Override
public void initView() {
mViewDataBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 6));
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
@@ -68,21 +52,28 @@ public class MoreAppActivity extends BaseMvpActivity implements MoreContact.More
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 1));//底部间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 20));//右间距
recyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mViewDataBinding.recyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mAppAdapter = new AppAdapter();
recyclerView.setAdapter(mAppAdapter);
mViewDataBinding.recyclerView.setAdapter(mAppAdapter);
registerAppChangedReceiver();
}
@Override
public void initData() {
registerAppChangedReceiver();
mPresenter.getInstalledApp();
mViewModel.mDesktopIconListData.observe(this, new Observer<ArrayList<DesktopIcon>>() {
@Override
public void onChanged(ArrayList<DesktopIcon> desktopIcons) {
mAppAdapter.setDesktopIcons(desktopIcons);
mViewDataBinding.tvAppsize.setText(String.format(getString(R.string.app_size), desktopIcons.size() - 1));
}
});
mViewModel.getInstalledApp();
}
@Override
protected void onResume() {
super.onResume();
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
@Override
@@ -93,12 +84,6 @@ public class MoreAppActivity extends BaseMvpActivity implements MoreContact.More
}
}
@Override
public void setDesktopIcons(List<DesktopIcon> desktopIcons) {
mAppAdapter.setDesktopIcons(desktopIcons);
tv_appsize.setText(String.format(getString(R.string.app_size), desktopIcons.size() - 1));
}
private AppChangedReceiver mAppChangedReceiver;
private void registerAppChangedReceiver() {
@@ -124,7 +109,13 @@ public class MoreAppActivity extends BaseMvpActivity implements MoreContact.More
if (TextUtils.isEmpty(action)) {
return;
}
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
}
public class BtnClick {
public void exit(View view) {
finish();
}
}
}

View File

@@ -0,0 +1,37 @@
package com.uiui.zyos.activity.more;
import androidx.lifecycle.MutableLiveData;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiui.zyos.R;
import com.uiui.zyos.base.mvvm.BaseViewModel;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.databinding.ActivityMoreappBinding;
import com.uiui.zyos.manager.AppManager;
import java.util.ArrayList;
public class MoreAppViewModel extends BaseViewModel<ActivityMoreappBinding, ActivityEvent> {
@Override
public ActivityMoreappBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
public MutableLiveData<ArrayList<DesktopIcon>> mDesktopIconListData = new MutableLiveData<>();
public void getInstalledApp() {
ArrayList<DesktopIcon> desktopIcons = AppManager.getInstance().getFilterAppList();
DesktopIcon desktopIcon = new DesktopIcon();
desktopIcon.setLable("添加应用");
desktopIcon.setPackageName("com.zyos.add");
desktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_add));
desktopIcons.add(desktopIcons.size(), desktopIcon);
mDesktopIconListData.setValue(desktopIcons);
}
}

View File

@@ -1,17 +0,0 @@
package com.uiui.zyos.activity.more;
import com.uiui.zyos.base.mvp.BasePresenter;
import com.uiui.zyos.base.mvp.BaseView;
import com.uiui.zyos.bean.DesktopIcon;
import java.util.List;
public class MoreContact {
public interface Presenter extends BasePresenter<MoreView> {
void getInstalledApp();
}
public interface MoreView extends BaseView {
void setDesktopIcons(List<DesktopIcon> desktopIcons);
}
}

View File

@@ -1,59 +0,0 @@
package com.uiui.zyos.activity.more;
import android.content.Context;
import android.util.Log;
import androidx.annotation.NonNull;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiui.zyos.R;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.manager.AppManager;
import java.util.ArrayList;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class MorePresenter implements MoreContact.Presenter {
private static final String TAG = MorePresenter.class.getSimpleName();
private Context mContext;
private MoreContact.MoreView mView;
private BehaviorSubject<ActivityEvent> lifecycle;
void setLifecycle(BehaviorSubject<ActivityEvent> lifecycle) {
this.lifecycle = lifecycle;
}
public BehaviorSubject<ActivityEvent> getLifecycle() {
return lifecycle;
}
MorePresenter(Context context) {
this.mContext = context;
Log.e(TAG, "MainAPresenter: " + context.getClass());
}
@Override
public void attachView(@NonNull MoreContact.MoreView view) {
this.mView = view;
}
@Override
public void detachView() {
this.mView = null;
}
@Override
public void getInstalledApp() {
ArrayList<DesktopIcon> desktopIcons = AppManager.getInstance().getFilterAppList();
DesktopIcon desktopIcon = new DesktopIcon();
desktopIcon.setLable("添加应用");
desktopIcon.setPackageName("com.zyos.add");
desktopIcon.setIcon(mContext.getDrawable(R.drawable.icon_add));
desktopIcons.add(desktopIcons.size(), desktopIcon);
mView.setDesktopIcons(desktopIcons);
}
}

View File

@@ -28,7 +28,7 @@ import java.util.List;
import java.util.Set;
public class AddAppAdapter extends RecyclerView.Adapter<AddAppAdapter.AppHolder> {
private static final String TAG = AddAppAdapter.class.getSimpleName();
private static final String TAG = "AddAppAdapter";
private Context mContext;

View File

@@ -34,7 +34,7 @@ import java.util.ArrayList;
import java.util.List;
public class AppAdapter extends RecyclerView.Adapter<AppAdapter.AppHolder> {
private static final String TAG = AppAdapter.class.getSimpleName();
private static final String TAG = "AppAdapter";
private Context mContext;

View File

@@ -0,0 +1,139 @@
package com.uiui.zyos.adapter;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.hjq.toast.Toaster;
import com.uiui.zyos.R;
import com.uiui.zyos.activity.ManualActivity;
import com.uiui.zyos.activity.PasswordActivity;
import com.uiui.zyos.activity.ServiceActivity;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.manager.AppManager;
import com.uiui.zyos.utils.ApkUtils;
import com.uiui.zyos.utils.BitmapUtils;
import com.uiui.zyos.utils.IconUtils;
import com.uiui.zyos.utils.OpenApkUtils;
import java.util.List;
public class FileAdapter extends RecyclerView.Adapter<FileAdapter.AppHolder> {
private static final String TAG = "FileAdapter";
private Context mContext;
private List<DesktopIcon> desktopIcons;
@NonNull
@Override
public AppHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
mContext = parent.getContext();
return new AppHolder(LayoutInflater.from(mContext).inflate(R.layout.item_file, parent, false));
}
@Override
public void onBindViewHolder(@NonNull AppHolder holder, int position) {
DesktopIcon desktopIcon = desktopIcons.get(position);
String lable = desktopIcon.getLable();
holder.tv_appname.setText(lable);
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 {
switch (pkg) {
case AppManager.ADD_NAME:
case AppManager.UPDATE_NAME:
case AppManager.MANUAL_NAME:
case AppManager.SERVICE_NAME:
holder.iv_icon.setImageDrawable(desktopIcon.getIcon());
break;
default:
holder.iv_icon.setImageBitmap(BitmapUtils.getIconBitmap(mContext, desktopIcon.getIcon()));
break;
}
}
holder.root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (pkg) {
case AppManager.ADD_NAME:
mContext.startActivity(new Intent(mContext, PasswordActivity.class));
break;
case AppManager.UPDATE_NAME:
Intent intent = new Intent();
ComponentName componentName = new ComponentName("com.uiui.zy", "com.uiui.zy.activity.update.UpdateActivity");
intent.setComponent(componentName);
mContext.startActivity(intent);
break;
case AppManager.MANUAL_NAME:
mContext.startActivity(new Intent(mContext, ManualActivity.class));
break;
case AppManager.SERVICE_NAME:
mContext.startActivity(new Intent(mContext, ServiceActivity.class));
break;
default:
int settingOtherAppInstaller = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.SETTING_OTHER_APPINSTALLER_KEY, 1);
if (settingOtherAppInstaller == 0
&& !ApkUtils.isSystemApp(mContext, desktopIcon.getPackageName()
)) {
Toaster.show("已禁止应用打开");
} else {
OpenApkUtils.getInstance().openApp(desktopIcon.getPackageName(), desktopIcon.getClassName());
}
break;
}
}
});
}
@Override
public int getItemCount() {
return desktopIcons == null ? 0 : desktopIcons.size();
}
public List<DesktopIcon> getDesktopIcons() {
return desktopIcons;
}
public void setDesktopIcons(List<DesktopIcon> desktopIcons) {
this.desktopIcons = desktopIcons;
notifyDataSetChanged();
}
class AppHolder extends RecyclerView.ViewHolder {
ConstraintLayout root;
TextView tv_appname;
ImageView iv_icon;
public AppHolder(@NonNull View itemView) {
super(itemView);
root = itemView.findViewById(R.id.root);
tv_appname = itemView.findViewById(R.id.tv_appname);
iv_icon = itemView.findViewById(R.id.iv_icon);
}
}
}

View File

@@ -35,9 +35,10 @@ import java.util.Map;
import java.util.TimeZone;
public class AlarmUtils {
private static final String TAG = "AlarmUtils";
@SuppressLint("StaticFieldLeak")
private static AlarmUtils sInstance;
private static String TAG = AlarmUtils.class.getSimpleName();
private Context mContext;
private AlarmManager alarmManager;
private SQLiteDatabase db;

View File

@@ -28,7 +28,7 @@ import com.uiui.zyos.utils.OpenApkUtils;
import com.uiui.zyos.utils.SystemUtils;
public class BaseApplication extends Application {
private static final String TAG = BaseApplication.class.getSimpleName();
private static final String TAG = "BaseApplication";
@Override
public void onCreate() {
@@ -62,7 +62,7 @@ public class BaseApplication extends Application {
RemoteManager.init(this);
RemoteManager.setListener(new RemoteManager.ConnectedListener() {
@Override
public void onConnected() {
public void onRemoteConnected() {
CrashReport.setDeviceId(BaseApplication.this, RemoteManager.getInstance().getSerial());
RemoteManager.getInstance().aliyunPushInit();
}

View File

@@ -0,0 +1,257 @@
package com.uiui.zyos.base;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import java.lang.ref.WeakReference;
import java.lang.reflect.ParameterizedType;
/**
* @author: lml
* @date: 2021/12/15
*/
public abstract class BaseDataBindingFragment<VDB extends ViewDataBinding> extends BaseFragment {
protected String mTag = this.getClass().getSimpleName();
/**
* 是否顯示了
*/
protected boolean mIsVisible;
/**
* 是否準備好了-Created
*/
protected boolean mHasPrepare;
protected VDB mViewDataBinding;
protected Bundle bundle;//来自getArguments()
protected Bundle savedInstanceState;
/**
* 上下文
*/
private WeakReference<Context> ctx;
public Context getCtx() {
return ctx == null ? null : ctx.get();
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
ctx = new WeakReference<>(context);
}
/**
* onCreate、onResume里不能调用
*
* @return
*/
public boolean isAttached() {
boolean flag = getCtx() != null && isAdded();
Log.e(" >> isAttached >>", "flag = " + flag);
return flag;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mViewDataBinding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false);
mViewDataBinding.setLifecycleOwner(this);
return mViewDataBinding.getRoot();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// if (initStatusBarToolBar()) {
// toolbar = getToolbar();
// }
//注册eventbus
// if (getClass().isAnnotationPresent(BindEventBus.class))
// EventBusManager.register(this);
//
// fitsLayoutOverlap();
initDataBinding();
initView(bundle = getArguments());
//
initData(this.savedInstanceState = savedInstanceState);
//
if (mIsVisible) {
onEnter();
}
mHasPrepare = true;
//
// LiveDataBus.get().with(ConstantUtils.DATA_BUS_LOADING_FRAGMENT, Boolean.class).observe(getActivity(), bool -> {
// L.e(" >> LiveDataBus >> DATA_BUS_LOADING_FRAGMENT: %s", bool);
// if(bool) {
// showLoading(R.string.str_please_wait);
// } else {
// hideLoading();
// }
// });
}
@Override
public void onDestroyView() {
super.onDestroyView();
mHasPrepare = false;
mViewDataBinding = null;
//移除eventbus
// if (getClass().isAnnotationPresent(BindEventBus.class))
// EventBusManager.unregister(this);
//
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (mIsVisible == getUserVisibleHint())
return;
mIsVisible = getUserVisibleHint();
if (mIsVisible) {
if (!mHasPrepare)
return;
onEnter();
} else {
onExit();
}
}
@LayoutRes
protected abstract int getLayoutId();
// protected abstract Toolbar getToolbar();
// protected View getStatusView() {
// return null;
// }
protected abstract void initDataBinding();
protected abstract void initView(Bundle bundle);
protected abstract void initData(Bundle savedInstanceState);
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// fitsLayoutOverlap();
}
// protected boolean isImmersionBarEnabled() {
// return true;
// }
// protected boolean initStatusBarToolBar() {
// return true;
// }
// private void fitsLayoutOverlap() {
// if (!isImmersionBarEnabled()) return;
// if (statusBarView != null) {
// ImmersionBar.setStatusBarView(getActivity(), statusBarView);
// }
// if (toolbar != null) {
// ImmersionBar.setTitleBar(getActivity(), toolbar);
// }
// }
protected void hideInputMethod(Activity activity) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus();
if (view != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
protected void hideInputMethod(Activity activity, EditText editText) {
InputMethodManager imm = (InputMethodManager) editText.getContext().getSystemService(Activity.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus();
if (view != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
protected void showInputMethod(EditText editText) {
InputMethodManager imm = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
}
// private CustomDialog mWaitDialog;
//
// public void showLoading(@StringRes int contentID) {
// showLoading(contentID, R.color.white);
// }
//
// public void showLoading(@StringRes int contentID, @ColorRes int color) {
// hideLoading();
// DialogX.init(getActivity());
// if (color == R.color.white) {
// mWaitDialog = DialogXUtil.getInstance().showLoading(getActivity(), getString(contentID), getResources().getColor(color));
// } else {
// mWaitDialog = DialogXUtil.getInstance().showLoading_black(getActivity(), getString(contentID), getResources().getColor(color));
// }
// }
//
// public void updateLoadingTip(@StringRes int messageID, int percent) {
// try {
// if (mWaitDialog != null && mWaitDialog.isShow()) {
// TextView tvTip = mWaitDialog.getCustomView().findViewById(R.id.tv_load_tip);
// if (tvTip != null)
// tvTip.setText(getResources().getString(messageID) + (percent == -1 ? "" : percent + "%"));
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
//
// public boolean isShowLoading() {
// return mWaitDialog != null && mWaitDialog.isShow();
// }
//
// public void hideLoading() {
// try {
// boolean isShow = isShowLoading();
// L.d(" >> hideLoading :: isShow: %s", isShow);
// if (isShow)
// mWaitDialog.dismiss();
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
/**
* 進入界面
*/
protected void onEnter() {
}
/**
* 離開界面
*/
protected void onExit() {
}
}

View File

@@ -11,7 +11,7 @@ import androidx.fragment.app.Fragment;
* Date: 1/23/15.
*/
public abstract class BaseLazyFragment extends Fragment {
private static final String TAG = BaseLazyFragment.class.getSimpleName();
private static final String TAG = "BaseLazyFragment";
private boolean isPrepared;
@Override

View File

@@ -16,7 +16,7 @@ import java.lang.reflect.ParameterizedType;
public abstract class BaseMvvmActivity<VM extends ViewModel, VDB extends ViewDataBinding> extends BaseTransparentActivity {
private static final String TAG = BaseMvvmActivity.class.getSimpleName();
private static final String TAG = "BaseMvvmActivity";
protected VM mViewModel;
protected VDB mViewDataBinding;

View File

@@ -0,0 +1,26 @@
package com.uiui.zyos.bean;
import java.io.Serializable;
public class GuideBean implements Serializable {
private static final long serialVersionUID = 603876094734315379L;
String type;
String file;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
}

View File

@@ -30,7 +30,7 @@ import java.io.Serializable;
* 磁盘缓存帮助类
*/
public class CacheHelper {
private static final String TAG = CacheHelper.class.getSimpleName();
private static final String TAG = "CacheHelper";
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);

View File

@@ -1,17 +0,0 @@
package com.uiui.zyos.fragment.app;
import com.uiui.zyos.base.mvp.BasePresenter;
import com.uiui.zyos.base.mvp.BaseView;
import com.uiui.zyos.bean.DesktopIcon;
import java.util.ArrayList;
public class AppContact {
public interface AppPresenter extends BasePresenter<AppView> {
void getInstalledApp();
}
public interface AppView extends BaseView {
void setInstalledApp( ArrayList<DesktopIcon> desktopIcons);
}
}

View File

@@ -8,46 +8,32 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.uiui.zyos.R;
import com.uiui.zyos.activity.more.MoreAppActivity;
import com.uiui.zyos.adapter.AppAdapter;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.base.mvvm.fragment.BaseMvvmFragment;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.databinding.FragmentAppBinding;
import com.uiui.zyos.view.RecyclerViewSpacesItemDecoration;
import java.util.ArrayList;
import java.util.HashMap;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link AppFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class AppFragment extends BaseFragment implements AppContact.AppView {
private static final String TAG = AppFragment.class.getSimpleName();
public class AppFragment extends BaseMvvmFragment<AppViewModel, FragmentAppBinding> {
private static final String TAG = "AppFragment";
@BindView(R.id.rv_app)
RecyclerView rv_app;
@BindView(R.id.iv_nodata)
ImageView iv_nodata;
private AppPresenter mPresenter;
private View rootView;
private FragmentActivity mContext;
private AppAdapter mAppAdapter;
@@ -95,41 +81,22 @@ public class AppFragment extends BaseFragment implements AppContact.AppView {
}
@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_app, container, false);
mContext = (FragmentActivity) rootView.getContext();
mPresenter = new AppPresenter(mContext);
mPresenter.attachView(this);
mPresenter.setLifecycle(getLifecycleSubject());
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected int getLayoutId() {
return R.layout.fragment_app;
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
protected void initDataBinding() {
mContext = getActivity();
mViewModel.setCtx(getCtx());
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
// mViewDataBinding.setClick(new BtnClick());
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
initData();
}
private void initView() {
rv_app.setLayoutManager(new GridLayoutManager(mContext, 6));
protected void initView(Bundle bundle) {
mViewDataBinding.rvApp.setLayoutManager(new GridLayoutManager(mContext, 6));
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
@@ -139,14 +106,38 @@ public class AppFragment extends BaseFragment implements AppContact.AppView {
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 1));//底部间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 20));//右间距
rv_app.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mViewDataBinding.rvApp.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mAppAdapter = new AppAdapter();
rv_app.setAdapter(mAppAdapter);
mViewDataBinding.rvApp.setAdapter(mAppAdapter);
registerOwnReceiver();
}
private void initData() {
@Override
protected void initData(Bundle savedInstanceState) {
mViewModel.mDesktopIconListData.observe(this, new Observer<ArrayList<DesktopIcon>>() {
@Override
public void onChanged(ArrayList<DesktopIcon> desktopIcons) {
Log.e(TAG, "setInstalledApp: " + desktopIcons);
if (desktopIcons == null || desktopIcons.size() == 0) {
mViewDataBinding.ivNodata.setVisibility(View.VISIBLE);
mViewDataBinding.rvApp.setVisibility(View.INVISIBLE);
} else {
mViewDataBinding.ivNodata.setVisibility(View.GONE);
mViewDataBinding.rvApp.setVisibility(View.VISIBLE);
mAppAdapter.setDesktopIcons(desktopIcons);
}
}
});
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
}
@Override
@@ -154,7 +145,7 @@ public class AppFragment extends BaseFragment implements AppContact.AppView {
super.setUserVisibleHint(isVisibleToUser);
Log.e(TAG, "setUserVisibleHint: " + isVisibleToUser);
if (isVisibleToUser && isViewInitiated) {
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
}
@@ -162,7 +153,7 @@ public class AppFragment extends BaseFragment implements AppContact.AppView {
public void onResume() {
super.onResume();
Log.e(TAG, "onResume: ");
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
@Override
@@ -210,7 +201,7 @@ public class AppFragment extends BaseFragment implements AppContact.AppView {
return;
}
if (UPDATE_DESKTOP_ICON_ACTION.equals(action)) {
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
}
}
@@ -240,21 +231,11 @@ public class AppFragment extends BaseFragment implements AppContact.AppView {
if (TextUtils.isEmpty(action)) {
return;
}
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
}
public class BtnClick {
@Override
public void setInstalledApp(ArrayList<DesktopIcon> desktopIcons) {
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);
}
}
}

View File

@@ -1,47 +1,30 @@
package com.uiui.zyos.fragment.app;
import android.content.Context;
import androidx.lifecycle.MutableLiveData;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiui.zyos.R;
import com.uiui.zyos.base.mvvm.BaseViewModel;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.databinding.FragmentAppBinding;
import com.uiui.zyos.manager.AppManager;
import java.util.ArrayList;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class AppViewModel extends BaseViewModel<FragmentAppBinding, FragmentEvent> {
public class AppPresenter implements AppContact.AppPresenter {
private static final String TAG = AppPresenter.class.getSimpleName();
private Context mContext;
private AppContact.AppView mView;
public AppPresenter(Context context) {
this.mContext = context;
}
private BehaviorSubject<FragmentEvent> lifecycle;
void setLifecycle(BehaviorSubject<FragmentEvent> lifecycle) {
this.lifecycle = lifecycle;
}
public BehaviorSubject<FragmentEvent> getLifecycle() {
return lifecycle;
@Override
public FragmentAppBinding getVDBinding() {
return binding;
}
@Override
public void attachView(@NonNull AppContact.AppView view) {
this.mView = view;
public void onDestroy() {
}
@Override
public void detachView() {
this.mView = null;
}
public MutableLiveData<ArrayList<DesktopIcon>> mDesktopIconListData = new MutableLiveData<>();
@Override
public void getInstalledApp() {
ArrayList<DesktopIcon> desktopIcons = AppManager.getInstance().getFilterAppList();
@@ -49,30 +32,30 @@ public class AppPresenter implements AppContact.AppPresenter {
appstoreDesktopIcon.setLable("应用市场");
appstoreDesktopIcon.setPackageName(AppManager.APPSTORE_PACKAGE_NAME);
appstoreDesktopIcon.setClassName(AppManager.APPSTORE_CLASS_NAME);
appstoreDesktopIcon.setIcon(mContext.getDrawable(R.drawable.com_android_appstore));
appstoreDesktopIcon.setIcon(getCtx().getDrawable(R.drawable.com_android_appstore));
desktopIcons.add(desktopIcons.size(), appstoreDesktopIcon);
DesktopIcon updateDesktopIcon = new DesktopIcon();
updateDesktopIcon.setLable("应用更新");
updateDesktopIcon.setPackageName(AppManager.UPDATE_NAME);
updateDesktopIcon.setIcon(mContext.getDrawable(R.drawable.icon_update));
updateDesktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_update));
desktopIcons.add(desktopIcons.size(), updateDesktopIcon);
// DesktopIcon manualIcon = new DesktopIcon();
// manualIcon.setLable("使用手册");
// manualIcon.setPackageName(AppManager.MANUAL_NAME);
// manualIcon.setIcon(mContext.getDrawable(R.drawable.icon_manual));
// manualIcon.setIcon(getCtx().getDrawable(R.drawable.icon_manual));
// desktopIcons.add(desktopIcons.size(), manualIcon);
DesktopIcon browserIcon = new DesktopIcon();
browserIcon.setIcon(mContext.getDrawable(R.drawable.uiui_zybrowser));
browserIcon.setIcon(getCtx().getDrawable(R.drawable.uiui_zybrowser));
browserIcon.setLable("浏览器");
browserIcon.setPackageName(AppManager.BROWSER_PACKAGE_NAME);
browserIcon.setClassName(AppManager.BROWSER_CLASS_NAME);
desktopIcons.add(browserIcon);
DesktopIcon serviceIcon = new DesktopIcon();
serviceIcon.setIcon(mContext.getDrawable(R.drawable.service_icon));
serviceIcon.setIcon(getCtx().getDrawable(R.drawable.service_icon));
serviceIcon.setLable("联系客服");
serviceIcon.setPackageName(AppManager.SERVICE_NAME);
desktopIcons.add(serviceIcon);
@@ -80,8 +63,8 @@ public class AppPresenter implements AppContact.AppPresenter {
DesktopIcon desktopIcon = new DesktopIcon();
desktopIcon.setLable("添加应用");
desktopIcon.setPackageName(AppManager.ADD_NAME);
desktopIcon.setIcon(mContext.getDrawable(R.drawable.icon_add));
desktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_add));
desktopIcons.add(desktopIcons.size(), desktopIcon);
mView.setInstalledApp(desktopIcons);
mDesktopIconListData.setValue(desktopIcons);
}
}

View File

@@ -3,22 +3,18 @@ package com.uiui.zyos.fragment.ar;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Debug;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageView;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.uiui.zyos.R;
import com.uiui.zyos.adapter.HomeworkAdapter;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.base.BaseDataBindingFragment;
import com.uiui.zyos.databinding.FragmentArStudyBinding;
import com.uiui.zyos.utils.ApkUtils;
import com.uiui.zyos.view.RecyclerViewSpacesItemDecoration;
@@ -26,24 +22,16 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link ARStudyFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class ARStudyFragment extends BaseFragment {
private static final String TAG = ARStudyFragment.class.getSimpleName();
public class ARStudyFragment extends BaseDataBindingFragment<FragmentArStudyBinding> {
private static final String TAG = "ARStudyFragment";
@BindView(R.id.iv_app)
ImageView iv_app;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
private View rootView;// 设置为全局的
private Activity mContext;
private HomeworkAdapter mHomeworkAdapter;
// TODO: Rename parameter arguments, choose names that match
@@ -88,33 +76,59 @@ public class ARStudyFragment extends BaseFragment {
Log.e(TAG, "onCreate: ");
}
@Override
protected int getLayoutId() {
return R.layout.fragment_ar_study;
}
@Override
protected void initDataBinding() {
mContext = getActivity();
}
@Override
protected void initView(Bundle bundle) {
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
wm.getDefaultDisplay().getRealMetrics(dm);
float density = dm.density; // 屏幕密度0.75 / 1.0 / 1.5
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.TOP_DECORATION, (int) (density * 10));//top间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 10));//底部间距
// stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距
// stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 20));//右间距
mViewDataBinding.recyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mHomeworkAdapter = new HomeworkAdapter();
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mViewDataBinding.recyclerView.setLayoutManager(linearLayoutManager);
mViewDataBinding.recyclerView.setAdapter(mHomeworkAdapter);
List<String> homeworkList = new ArrayList<>();
homeworkList.add("暂时没有作业");
mHomeworkAdapter.setHomeworkList(homeworkList);
mViewDataBinding.ivApp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openArApk();
}
});
}
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
}
@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_ar_study, container, false);
mContext = (Activity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
@Override
@@ -127,7 +141,9 @@ public class ARStudyFragment extends BaseFragment {
}
}
}
private UserVisibleHintCallback mUserVisibleHintCallback;
public interface UserVisibleHintCallback {
void onUserVisibleHint();
}
@@ -136,35 +152,6 @@ public class ARStudyFragment extends BaseFragment {
mUserVisibleHintCallback = userVisibleHintCallback;
}
private void initView() {
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
wm.getDefaultDisplay().getRealMetrics(dm);
float density = dm.density; // 屏幕密度0.75 / 1.0 / 1.5
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.TOP_DECORATION, (int) (density * 10));//top间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 10));//底部间距
// stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距
// stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 20));//右间距
recyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mHomeworkAdapter = new HomeworkAdapter();
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(mHomeworkAdapter);
List<String> homeworkList = new ArrayList<>();
homeworkList.add("暂时没有作业");
mHomeworkAdapter.setHomeworkList(homeworkList);
iv_app.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openArApk();
}
});
}
private void openArApk() {
if (ApkUtils.isAvailable(mContext, "com.visiontalk.taskoptions") && ApkUtils.isAvailable(mContext, "com.visiontalk.honor")) {
ApkUtils.openPackage(mContext, "com.visiontalk.taskoptions");

View File

@@ -2,40 +2,24 @@ package com.uiui.zyos.fragment.biology;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
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.base.BaseDataBindingFragment;
import com.uiui.zyos.databinding.FragmentBiologyBinding;
import com.uiui.zyos.utils.OpenApkUtils;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link BiologyFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class BiologyFragment extends BaseFragment {
private static final String TAG = BiologyFragment.class.getSimpleName();
public class BiologyFragment extends BaseDataBindingFragment<FragmentBiologyBinding> {
private static final String TAG = "BiologyFragment";
@BindView(R.id.imageView1)
ImageView imageView1;
@BindView(R.id.imageView2)
ImageView imageView2;
@BindView(R.id.imageView3)
ImageView imageView3;
@BindView(R.id.imageView4)
ImageView imageView4;
private View rootView;// 设置为全局的
private Activity mContext;
// TODO: Rename parameter arguments, choose names that match
@@ -81,55 +65,36 @@ public class BiologyFragment extends BaseFragment {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
protected int getLayoutId() {
return R.layout.fragment_biology;
}
@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_biology, container, false);
mContext = (Activity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected void initDataBinding() {
mContext = getActivity();
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
private void initView() {
imageView1.setOnClickListener(new View.OnClickListener() {
protected void initView(Bundle bundle) {
mViewDataBinding.imageView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|生物");
}
});
imageView2.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/生物|e:JWFD");
}
});
imageView3.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openLaboratory("生物实验室");
}
});
imageView4.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
@@ -139,7 +104,21 @@ public class BiologyFragment extends BaseFragment {
}
}
});
}
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}

View File

@@ -2,41 +2,24 @@ package com.uiui.zyos.fragment.chemical;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
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.base.BaseDataBindingFragment;
import com.uiui.zyos.databinding.FragmentChemicalBinding;
import com.uiui.zyos.utils.OpenApkUtils;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link ChemicalFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class ChemicalFragment extends BaseFragment {
private static final String TAG = ChemicalFragment.class.getSimpleName();
public class ChemicalFragment extends BaseDataBindingFragment<FragmentChemicalBinding> {
private static final String TAG = "ChemicalFragment";
@BindView(R.id.imageView1)
ImageView imageView1;
@BindView(R.id.imageView2)
ImageView imageView2;
@BindView(R.id.imageView3)
ImageView imageView3;
@BindView(R.id.imageView4)
ImageView imageView4;
private View rootView;// 设置为全局的
private Activity mContext;
// TODO: Rename parameter arguments, choose names that match
@@ -82,55 +65,36 @@ public class ChemicalFragment extends BaseFragment {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
protected int getLayoutId() {
return R.layout.fragment_chemical;
}
@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_chemical, container, false);
mContext = (Activity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected void initDataBinding() {
mContext = getActivity();
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
private void initView() {
imageView1.setOnClickListener(new View.OnClickListener() {
protected void initView(Bundle bundle) {
mViewDataBinding.imageView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|化学");
}
});
imageView2.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/化学|e:JWFD");
}
});
imageView3.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openLaboratory("化学实验室");
}
});
imageView4.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
@@ -140,7 +104,20 @@ public class ChemicalFragment extends BaseFragment {
}
}
});
}
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}

View File

@@ -1,15 +0,0 @@
package com.uiui.zyos.fragment.chinese;
import com.uiui.zyos.base.mvp.BasePresenter;
import com.uiui.zyos.base.mvp.BaseView;
public class ChineseContact {
public interface Presenter extends BasePresenter<ChineseView> {
}
public interface ChineseView extends BaseView {
}
}

View File

@@ -9,73 +9,31 @@ import android.content.res.Configuration;
import android.os.BatteryManager;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
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.base.mvvm.fragment.BaseMvvmFragment;
import com.uiui.zyos.databinding.FragmentChineseBinding;
import com.uiui.zyos.dialog.ChineseDialog;
import com.uiui.zyos.dialog.FoundationDialog;
import com.uiui.zyos.jxw.JxwPackageConfig;
import com.uiui.zyos.manager.AmapManager;
import com.uiui.zyos.manager.RemoteManager;
import com.uiui.zyos.utils.OpenApkUtils;
import com.uiui.zyos.utils.Utils;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link ChineseFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class ChineseFragment extends BaseFragment implements ChineseContact.ChineseView, NetworkUtils.OnNetworkStatusChangedListener {
private static final String TAG = ChineseFragment.class.getSimpleName();
public class ChineseFragment extends BaseMvvmFragment<ChineseViewModel, FragmentChineseBinding> implements NetworkUtils.OnNetworkStatusChangedListener {
private static final String TAG = "ChineseFragment";
@BindView(R.id.iv_sync_video)
ImageView iv_sync_video;
@BindView(R.id.tv_more_app)
TextView tv_more_app;
@BindView(R.id.cl_tutoring)
ConstraintLayout cl_tutoring;
@BindView(R.id.cl_near_antonyms)
ConstraintLayout cl_near_antonyms;
@BindView(R.id.cl_composition)
ConstraintLayout cl_composition;
@BindView(R.id.cl_read)
ConstraintLayout cl_read;
@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)
ImageView iv_character;
@BindView(R.id.iv_foundation)
ImageView iv_foundation;
private View rootView;// 设置为全局的
private Activity mContext;
private ChinesePresenter mChinesePresenter;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -131,74 +89,50 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
protected int getLayoutId() {
return R.layout.fragment_chinese;
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
AmapManager.getInstance().startLocation();
initData();
protected void initDataBinding() {
mContext = getActivity();
mViewModel.setCtx(getCtx());
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
// mViewDataBinding.setClick(new BtnClick());
}
@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_chinese, container, false);
mContext = (Activity) rootView.getContext();
mChinesePresenter = new ChinesePresenter(mContext);
mChinesePresenter.attachView(this);
mChinesePresenter.setLifecycle(getLifecycleSubject());
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
private void initView() {
protected void initView(Bundle bundle) {
Log.e(TAG, "initView: " + Utils.getBatteryLevel(mContext));
registerBatteryReceiver();
registTimeReceiver();
mContext.registerReceiver(mbatteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
iv_sync_video.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.ivSyncVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|语文");
}
});
tv_more_app.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.tvMoreApp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
cl_tutoring.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clTutoring.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/语文|e:JWFD");
}
});
cl_near_antonyms.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clNearAntonyms.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);
}
});
cl_composition.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clComposition.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// OpenApkUtils.getInstance().openComposition();
@@ -217,38 +151,38 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin
chineseDialog.show();
}
});
cl_read.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_READING_PACKAGE_NAME, JxwPackageConfig.JXW_READING_CLASS_NAME);
}
});
cl_character.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clCharacter.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().openSolidifiedData("d:/同步学习/语文|e:JWFD");
}
});
cl_classical.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clClassical.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学文言文.JXW");
}
});
cl_rhetoric.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clRhetoric.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学修辞方法.JXW");
}
});
cl_treasure.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clTreasure.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学中华宝典.JXW");
}
});
cl_punctuation.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clPunctuation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学标点符号.JXW");
@@ -256,7 +190,7 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin
});
iv_dictation.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.ivDictation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
@@ -266,13 +200,13 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin
}
}
});
iv_character.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.ivCharacter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_CHARACTER_PACKAGE_NAME, JxwPackageConfig.JXW_CHARACTER_CLASS_NAME);
}
});
iv_foundation.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.ivFoundation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FoundationDialog foundationDialog = new FoundationDialog(mContext);
@@ -303,8 +237,25 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin
});
}
private void initData() {
initAmap();
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
AmapManager.getInstance().startLocation();
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
@Override
@@ -322,10 +273,6 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin
super.onResume();
}
private void initAmap() {
}
private void registerBatteryReceiver() {
if (null == batteryReceiver) {
batteryReceiver = new BatteryReceiver();
@@ -373,11 +320,9 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN);
if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
if (rootView != null) {
}
} else {
if (rootView != null) {
}
}
}
}
@@ -422,7 +367,6 @@ public class ChineseFragment extends BaseFragment implements ChineseContact.Chin
@Override
public void onDestroy() {
super.onDestroy();
mChinesePresenter.detachView();
NetworkUtils.unregisterNetworkStatusChangedListener(this);
if (batteryReceiver != null) {
mContext.unregisterReceiver(batteryReceiver);

View File

@@ -1,39 +0,0 @@
package com.uiui.zyos.fragment.chinese;
import android.content.Context;
import com.trello.rxlifecycle4.android.FragmentEvent;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class ChinesePresenter implements ChineseContact.Presenter {
private static final String TAG = ChinesePresenter.class.getSimpleName();
private Context mContext;
private ChineseContact.ChineseView mView;
public ChinesePresenter(Context context) {
this.mContext = context;
}
private BehaviorSubject<FragmentEvent> lifecycle;
void setLifecycle(BehaviorSubject<FragmentEvent> lifecycle) {
this.lifecycle = lifecycle;
}
public BehaviorSubject<FragmentEvent> getLifecycle() {
return lifecycle;
}
@Override
public void attachView(@NonNull ChineseContact.ChineseView view) {
this.mView = view;
}
@Override
public void detachView() {
this.mView = null;
}
}

View File

@@ -0,0 +1,18 @@
package com.uiui.zyos.fragment.chinese;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiui.zyos.base.mvvm.BaseViewModel;
import com.uiui.zyos.databinding.FragmentChineseBinding;
public class ChineseViewModel extends BaseViewModel<FragmentChineseBinding, FragmentEvent> {
@Override
public FragmentChineseBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
}

View File

@@ -2,55 +2,25 @@ package com.uiui.zyos.fragment.complex;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.constraintlayout.widget.ConstraintLayout;
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.base.BaseDataBindingFragment;
import com.uiui.zyos.databinding.FragmentComplexBinding;
import com.uiui.zyos.jxw.JxwPackageConfig;
import com.uiui.zyos.utils.OpenApkUtils;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link ComplexFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class ComplexFragment extends BaseFragment {
private static final String TAG = ComplexFragment.class.getSimpleName();
public class ComplexFragment extends BaseDataBindingFragment<FragmentComplexBinding> {
private static final String TAG = "ComplexFragment";
@BindView(R.id.cl_politics_video)
ConstraintLayout cl_politics_video;
@BindView(R.id.cl_politics_coach)
ConstraintLayout cl_politics_coach;
@BindView(R.id.cl_history_video)
ConstraintLayout cl_history_video;
@BindView(R.id.cl_history_coach)
ConstraintLayout cl_history_coach;
@BindView(R.id.cl_geography_video)
ConstraintLayout cl_geography_video;
@BindView(R.id.cl_geography_coach)
ConstraintLayout cl_geography_coach;
@BindView(R.id.cl_science_video)
ConstraintLayout cl_science_video;
@BindView(R.id.cl_science_coach)
ConstraintLayout cl_science_coach;
@BindView(R.id.iv_video)
ImageView iv_video;
@BindView(R.id.iv_famous_teacher)
ImageView iv_famous_teacher;
private View rootView;// 设置为全局的
private Activity mContext;
// TODO: Rename parameter arguments, choose names that match
@@ -95,86 +65,74 @@ public class ComplexFragment extends BaseFragment {
Log.e(TAG, "onCreate: ");
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
protected int getLayoutId() {
return R.layout.fragment_complex;
}
@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_complex, container, false);
mContext = (Activity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected void initDataBinding() {
mContext = getActivity();
}
private void initView() {
cl_politics_video.setOnClickListener(new View.OnClickListener() {
@Override
protected void initView(Bundle bundle) {
mViewDataBinding.clPoliticsVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|政治");
}
});
cl_politics_coach.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clPoliticsCoach.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/政治|e:JWFD");
}
});
cl_history_video.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clHistoryVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|历史");
}
});
cl_history_coach.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clHistoryCoach.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/历史|e:JWFD");
}
});
cl_geography_video.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clGeographyVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|地理");
}
});
cl_geography_coach.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clGeographyCoach.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/地理|e:JWFD");
}
});
cl_science_video.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clScienceVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|科学");
}
});
cl_science_coach.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clScienceCoach.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/科学|e:JWFD");
}
});
iv_video.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.ivVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|政治");
}
});
iv_famous_teacher.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.ivFamousTeacher.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_TEACHER_PACKAGE_NAME, JxwPackageConfig.JXW_TEACHER_CLASS_NAME);
@@ -182,9 +140,19 @@ public class ComplexFragment extends BaseFragment {
});
}
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
}

View File

@@ -3,47 +3,25 @@ package com.uiui.zyos.fragment.english;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.fragment.app.Fragment;
import com.uiui.zyos.R;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.base.BaseDataBindingFragment;
import com.uiui.zyos.databinding.FragmentEnglishBinding;
import com.uiui.zyos.dialog.EnglishBasicsDialog;
import com.uiui.zyos.jxw.JxwPackageConfig;
import com.uiui.zyos.utils.OpenApkUtils;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link EnglishFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class EnglishFragment extends BaseFragment {
private static final String TAG = EnglishFragment.class.getSimpleName();
public class EnglishFragment extends BaseDataBindingFragment<FragmentEnglishBinding> {
private static final String TAG = "EnglishFragment";
@BindView(R.id.imageView5)
ImageView imageView5;
@BindView(R.id.imageView6)
ImageView imageView6;
@BindView(R.id.imageView7)
ImageView imageView7;
@BindView(R.id.imageView8)
ImageView imageView8;
@BindView(R.id.imageView9)
ImageView imageView9;
@BindView(R.id.imageView10)
ImageView imageView10;
@BindView(R.id.imageView11)
ImageView imageView11;
private View rootView;// 设置为全局的
private Activity mContext;
// TODO: Rename parameter arguments, choose names that match
@@ -89,49 +67,30 @@ public class EnglishFragment extends BaseFragment {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
protected int getLayoutId() {
return R.layout.fragment_english;
}
@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_english, container, false);
mContext = (Activity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected void initDataBinding() {
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
private void initView() {
imageView5.setOnClickListener(new View.OnClickListener() {
protected void initView(Bundle bundle) {
mViewDataBinding.imageView5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|英语");
}
});
imageView6.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/英语|e:JWFD");
}
});
imageView7.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学英语词汇.JXW");
@@ -181,25 +140,25 @@ public class EnglishFragment extends BaseFragment {
englishBasicsDialog.show();
}
});
imageView8.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_TRANSLATE_PACKAGE_NAME, JxwPackageConfig.JXW_TRANSLATE_CLASS_NAME);
}
});
imageView9.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_MEMORIZE_WORDS_PACKAGE_NAME, JxwPackageConfig.JXW_WUWEI_WORDS_CLASS_NAME);
}
});
imageView10.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.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);
}
});
imageView11.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView11.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
@@ -210,4 +169,19 @@ public class EnglishFragment extends BaseFragment {
}
});
}
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}

View File

@@ -1,14 +0,0 @@
package com.uiui.zyos.fragment.main;
import com.uiui.zyos.base.mvp.BasePresenter;
import com.uiui.zyos.base.mvp.BaseView;
public class MainContact {
public interface Presenter extends BasePresenter<MainView> {
}
public interface MainView extends BaseView {
}
}

View File

@@ -1,39 +0,0 @@
package com.uiui.zyos.fragment.main;
import android.content.Context;
import com.trello.rxlifecycle4.android.FragmentEvent;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class MainFPresenter implements MainContact.Presenter {
private static final String TAG = MainFPresenter.class.getSimpleName();
private Context mContext;
private MainContact.MainView mView;
public MainFPresenter(Context context) {
this.mContext = context;
}
private BehaviorSubject<FragmentEvent> lifecycle;
void setLifecycle(BehaviorSubject<FragmentEvent> lifecycle) {
this.lifecycle = lifecycle;
}
public BehaviorSubject<FragmentEvent> getLifecycle() {
return lifecycle;
}
@Override
public void attachView(@NonNull MainContact.MainView view) {
this.mView = view;
}
@Override
public void detachView() {
this.mView = null;
}
}

View File

@@ -3,68 +3,35 @@ package com.uiui.zyos.fragment.main;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
import android.provider.Settings;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.uiui.zyos.R;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.view.viewpager.BaseFragmentPagerAdapter;
import com.uiui.zyos.base.mvvm.fragment.BaseMvvmFragment;
import com.uiui.zyos.databinding.FragmentMainBinding;
import com.uiui.zyos.fragment.subject.SubjectFragment;
import com.uiui.zyos.fragment.user.UserFragment;
import com.uiui.zyos.utils.OpenApkUtils;
import com.uiui.zyos.view.ScaleCircleNavigator;
import net.lucode.hackware.magicindicator.MagicIndicator;
import com.uiui.zyos.view.viewpager.BaseFragmentPagerAdapter;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link MainFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class MainFragment extends BaseFragment implements MainContact.MainView {
private static final String TAG = MainFragment.class.getSimpleName();
public class MainFragment extends BaseMvvmFragment<MainViewModel, FragmentMainBinding> {
private static final String TAG = "MainFragment";
@BindView(R.id.viewPager)
ViewPager mViewPager;
@BindView(R.id.magicIndicator)
MagicIndicator mMagicIndicator;
@BindView(R.id.cl_0)
ConstraintLayout cl_0;
@BindView(R.id.cl_1)
ConstraintLayout cl_1;
@BindView(R.id.cl_2)
ConstraintLayout cl_2;
@BindView(R.id.cl_3)
ConstraintLayout cl_3;
@BindView(R.id.cl_4)
ConstraintLayout cl_4;
@BindView(R.id.cl_5)
ConstraintLayout cl_5;
@BindView(R.id.cl_6)
ConstraintLayout cl_6;
@BindView(R.id.cl_7)
ConstraintLayout cl_7;
private MainFPresenter mPresenter;
private View rootView;
private FragmentActivity mContext;
private ScaleCircleNavigator scaleCircleNavigator;
@@ -119,45 +86,21 @@ public class MainFragment extends BaseFragment implements MainContact.MainView {
}
@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_main, container, false);
mContext = (FragmentActivity) rootView.getContext();
mPresenter = new MainFPresenter(mContext);
mPresenter.attachView(this);
mPresenter.setLifecycle(getLifecycleSubject());
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected int getLayoutId() {
return R.layout.fragment_main;
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
protected void initDataBinding() {
mContext = getActivity();
mViewModel.setCtx(getCtx());
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
// mViewDataBinding.setClick(new BtnClick());
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
initData();
}
public void setCurrentItem() {
mViewPager.setCurrentItem(defaultCurrent);
mSubjectFragment.setCurrentItem();
}
private void initView() {
protected void initView(Bundle bundle) {
mFragmentManager = getChildFragmentManager();
// mFragmentTransaction = mFragmentManager.beginTransaction();
mFragments = new ArrayList<>();
@@ -179,32 +122,32 @@ public class MainFragment extends BaseFragment implements MainContact.MainView {
}
});
mViewPager.setAdapter(mBaseFragmentPagerAdapter);
mViewPager.setOffscreenPageLimit(8);
mMagicIndicator.setNavigator(scaleCircleNavigator);
mViewDataBinding.viewPager.setAdapter(mBaseFragmentPagerAdapter);
mViewDataBinding.viewPager.setOffscreenPageLimit(8);
mViewDataBinding.magicIndicator.setNavigator(scaleCircleNavigator);
// ViewPagerHelper.bind(mMagicIndicator, mViewPager);
mSubjectFragment.setPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
mMagicIndicator.onPageScrolled(position + 1, positionOffset, positionOffsetPixels);
mViewDataBinding.magicIndicator.onPageScrolled(position + 1, positionOffset, positionOffsetPixels);
}
@Override
public void onPageSelected(int position) {
mMagicIndicator.onPageSelected(position + 1);
mViewDataBinding.magicIndicator.onPageSelected(position + 1);
}
@Override
public void onPageScrollStateChanged(int state) {
mMagicIndicator.onPageScrollStateChanged(state + 1);
mViewDataBinding.magicIndicator.onPageScrollStateChanged(state + 1);
}
});
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
mViewDataBinding.viewPager.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);
mViewDataBinding.magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
}
@@ -212,7 +155,7 @@ public class MainFragment extends BaseFragment implements MainContact.MainView {
public void onPageSelected(int position) {
Log.e(TAG, "onPageSelected: position = " + position);
if (position <= 1) {
mMagicIndicator.onPageSelected(position);
mViewDataBinding.magicIndicator.onPageSelected(position);
}
}
@@ -220,33 +163,33 @@ public class MainFragment extends BaseFragment implements MainContact.MainView {
public void onPageScrollStateChanged(int state) {
Log.e(TAG, "onPageSelected: state = " + state);
if (state <= 1) {
mMagicIndicator.onPageScrollStateChanged(state);
mViewDataBinding.magicIndicator.onPageScrollStateChanged(state);
}
}
});
if (mFragments.size() > 1) {
mViewPager.setCurrentItem(defaultCurrent);
mViewDataBinding.viewPager.setCurrentItem(defaultCurrent);
}
cl_0.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.cl0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openApp("com.uiui.zyappstore", "com.uiui.zyappstore.activity.MainActivity");
}
});
cl_1.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.cl1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openApp("com.uiui.zybrowser", "com.uiui.zybrowser.activity.main.MainActivity");
}
});
cl_2.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.cl2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openApp("com.android.documentsui");
}
});
cl_3.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.cl3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// OpenApkUtils.getInstance().openApp("com.android.camera");
@@ -254,14 +197,14 @@ public class MainFragment extends BaseFragment implements MainContact.MainView {
startActivity(intent);
}
});
cl_4.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.cl4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Settings.ACTION_SETTINGS);
startActivity(intent);
}
});
cl_5.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.cl5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// OpenApkUtils.getInstance().openApp("com.android.gallery3d.app");
@@ -269,22 +212,37 @@ public class MainFragment extends BaseFragment implements MainContact.MainView {
startActivity(intent);
}
});
cl_6.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.cl6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openApp("com.uiui.zyappstore");
}
});
cl_7.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.cl7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openApp("com.uiui.zyappstore");
}
});
}
@Override
protected void initData(Bundle savedInstanceState) {
}
private void initData() {
@Override
public void onDestroyView() {
super.onDestroyView();
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
}
public void setCurrentItem() {
mViewDataBinding.viewPager.setCurrentItem(defaultCurrent);
mSubjectFragment.setCurrentItem();
}
}

View File

@@ -0,0 +1,20 @@
package com.uiui.zyos.fragment.main;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiui.zyos.base.mvvm.BaseViewModel;
import com.uiui.zyos.databinding.FragmentMainBinding;
public class MainViewModel extends BaseViewModel<FragmentMainBinding, FragmentEvent> {
@Override
public FragmentMainBinding getVDBinding() {
return binding;
}
@Override
public void onDestroy() {
}
}

View File

@@ -2,59 +2,25 @@ package com.uiui.zyos.fragment.math;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.constraintlayout.widget.ConstraintLayout;
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.base.BaseDataBindingFragment;
import com.uiui.zyos.databinding.FragmentMathBinding;
import com.uiui.zyos.jxw.JxwPackageConfig;
import com.uiui.zyos.utils.OpenApkUtils;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link MathFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class MathFragment extends BaseFragment {
private static final String TAG = MathFragment.class.getSimpleName();
public class MathFragment extends BaseDataBindingFragment<FragmentMathBinding> {
private static final String TAG = "MathFragment";
@BindView(R.id.iv_sync_video)
ImageView iv_sync_video;
@BindView(R.id.cl_tutoring)
ConstraintLayout cl_tutoring;
@BindView(R.id.cl_near_antonyms)
ConstraintLayout cl_near_antonyms;
@BindView(R.id.cl_composition)
ConstraintLayout cl_composition;
@BindView(R.id.cl_read)
ConstraintLayout cl_read;
@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;
private View rootView;// 设置为全局的
private Activity mContext;
// TODO: Rename parameter arguments, choose names that match
@@ -99,101 +65,83 @@ public class MathFragment extends BaseFragment {
Log.e(TAG, "onCreate: ");
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
protected int getLayoutId() {
return R.layout.fragment_math;
}
@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_math, container, false);
mContext = (Activity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected void initDataBinding() {
mContext = getActivity();
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
private void initView() {
iv_sync_video.setOnClickListener(new View.OnClickListener() {
protected void initView(Bundle bundle) {
mViewDataBinding.ivSyncVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|数学");
}
});
cl_tutoring.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clTutoring.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/数学|e:JWFD");
}
});
cl_near_antonyms.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clNearAntonyms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学应用题训练.JXW");
}
});
cl_composition.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clComposition.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学奥数训练.JXW");
}
});
cl_read.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clRead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学方程精解.JXW");
}
});
cl_rhetoric.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clCharacter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学趣味数学.JXW");
}
});
cl_classical.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clClassical.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_ARITHMETIC_PACKAGE_NAME, JxwPackageConfig.JXW_ARITHMETIC_CLASS_NAME);
}
});
cl_encyclopedia.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clEncyclopedia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/中学公式大全.JXW");
}
});
cl_number.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clNumber.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() {
mViewDataBinding.clFormula.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSolidifiedData("f:/ansystem/固化数据/小学数学公式.JXW");
}
});
iv_precision_learning.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.ivPrecisionLearning.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
@@ -204,4 +152,20 @@ public class MathFragment extends BaseFragment {
}
});
}
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}

View File

@@ -3,38 +3,23 @@ package com.uiui.zyos.fragment.physics;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.fragment.app.Fragment;
import com.uiui.zyos.R;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.base.BaseDataBindingFragment;
import com.uiui.zyos.databinding.FragmentPhysicsBinding;
import com.uiui.zyos.utils.OpenApkUtils;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link PhysicsFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class PhysicsFragment extends BaseFragment {
private static final String TAG = PhysicsFragment.class.getSimpleName();
public class PhysicsFragment extends BaseDataBindingFragment<FragmentPhysicsBinding> {
private static final String TAG = "PhysicsFragment";
@BindView(R.id.imageView1)
ImageView imageView1;
@BindView(R.id.imageView2)
ImageView imageView2;
@BindView(R.id.imageView3)
ImageView imageView3;
@BindView(R.id.imageView4)
ImageView imageView4;
private View rootView;// 设置为全局的
private Activity mContext;
// TODO: Rename parameter arguments, choose names that match
@@ -85,50 +70,36 @@ public class PhysicsFragment extends BaseFragment {
}
@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_physics, container, false);
mContext = (Activity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected int getLayoutId() {
return R.layout.fragment_physics;
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
protected void initDataBinding() {
mContext = getActivity();
}
private void initView() {
imageView1.setOnClickListener(new View.OnClickListener() {
@Override
protected void initView(Bundle bundle) {
mViewDataBinding.imageView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSyncVideo("同步视频|物理");
}
});
imageView2.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openSynchronousTutoring("d:/同步学习/物理|e:JWFD");
}
});
imageView3.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openLaboratory("物理实验室");
}
});
imageView4.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.imageView4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (OpenApkUtils.getInstance().isNewAiApp()) {
@@ -138,6 +109,15 @@ public class PhysicsFragment extends BaseFragment {
}
}
});
}
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}

View File

@@ -1,56 +1,34 @@
package com.uiui.zyos.fragment.precision;
import android.app.Activity;
import android.media.Image;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import com.tencent.mmkv.MMKV;
import com.uiui.zyos.R;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.base.mvvm.fragment.BaseMvvmFragment;
import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.databinding.FragmentPrecisionBinding;
import com.uiui.zyos.fragment.ar.ARStudyFragment;
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 BaseMvvmFragment<PrecisionViewModel, FragmentPrecisionBinding> {
private static final String TAG = PrecisionFragment.class.getSimpleName();
private static final String TAG = "PrecisionFragment";
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
@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;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";

View File

@@ -1,23 +1,17 @@
package com.uiui.zyos.fragment.subject;
import android.os.Bundle;
import android.util.Log;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.flyco.tablayout.SlidingTabLayout;
import com.uiui.zyos.R;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.view.viewpager.BaseFragmentPagerAdapter;
import com.uiui.zyos.base.BaseDataBindingFragment;
import com.uiui.zyos.databinding.FragmentSubjectBinding;
import com.uiui.zyos.fragment.app.AppFragment;
import com.uiui.zyos.fragment.ar.ARStudyFragment;
import com.uiui.zyos.fragment.biology.BiologyFragment;
import com.uiui.zyos.fragment.chemical.ChemicalFragment;
import com.uiui.zyos.fragment.chinese.ChineseFragment;
@@ -26,32 +20,25 @@ 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 com.uiui.zyos.view.viewpager.BaseFragmentPagerAdapter;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link SubjectFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class SubjectFragment extends BaseFragment {
private static final String TAG = SubjectFragment.class.getSimpleName();
@BindView(R.id.main_sliding_tab_layout)
SlidingTabLayout main_sliding_tab_layout;
@BindView(R.id.viewPager)
ViewPager mViewPager;
public class SubjectFragment extends BaseDataBindingFragment<FragmentSubjectBinding> {
private static final String TAG = "SubjectFragment";
private String[] title = new String[]{
// "AR自主学",
"精准学", "语文", "数学", "英语", "物理", "化学", "生物", "综合", "应用"};
private View rootView;
private FragmentActivity mContext;
// private ARStudyFragment mARStudyFragment;
private PrecisionFragment mPrecisionFragment;
private ChineseFragment mChineseFragment;
@@ -88,11 +75,11 @@ public class SubjectFragment extends BaseFragment {
// mARStudyFragment.setUserVisibleHintCallback(new ARStudyFragment.UserVisibleHintCallback() {
// @Override
// public void onUserVisibleHint() {
// if (mViewPager != null) {
// mViewPager.postDelayed(new Runnable() {
// if (mViewDataBinding.viewPager != null) {
// mViewDataBinding.viewPager.postDelayed(new Runnable() {
// @Override
// public void run() {
// mViewPager.setOffscreenPageLimit(11);
// mViewDataBinding.viewPager.setOffscreenPageLimit(11);
// }
// }, 2345);
// Log.e(TAG, "setUserVisibleHint: setOffscreenPageLimit");
@@ -103,11 +90,11 @@ public class SubjectFragment extends BaseFragment {
mPrecisionFragment.setUserVisibleHintCallback(new PrecisionFragment.UserVisibleHintCallback() {
@Override
public void onUserVisibleHint() {
if (mViewPager != null) {
mViewPager.postDelayed(new Runnable() {
if (mViewDataBinding.viewPager != null) {
mViewDataBinding.viewPager.postDelayed(new Runnable() {
@Override
public void run() {
mViewPager.setOffscreenPageLimit(10);
mViewDataBinding.viewPager.setOffscreenPageLimit(10);
}
}, 1234);
Log.e(TAG, "setUserVisibleHint: setOffscreenPageLimit");
@@ -165,27 +152,31 @@ public class SubjectFragment extends BaseFragment {
}
@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_subject, container, false);
mContext = (FragmentActivity) rootView.getContext();
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected int getLayoutId() {
return R.layout.fragment_subject;
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
protected void initDataBinding() {
mContext = getActivity();
}
@Override
protected void initView(Bundle bundle) {
long time = System.currentTimeMillis();
Log.e(TAG, "initView: start " + time);
mFragmentManager = getChildFragmentManager();
mBaseFragmentPagerAdapter = new BaseFragmentPagerAdapter(mFragmentManager, mFragments);
mViewDataBinding.viewPager.setAdapter(mBaseFragmentPagerAdapter);
mViewDataBinding.viewPager.setOnPageChangeListener(mListener);
mViewDataBinding.mainSlidingTabLayout.setViewPager(mViewDataBinding.viewPager, title);
Log.e(TAG, "initView: end = " + (System.currentTimeMillis() - time));
}
@Override
protected void initData(Bundle savedInstanceState) {
}
@Override
@@ -204,6 +195,11 @@ public class SubjectFragment extends BaseFragment {
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
@Override
public void onResume() {
Log.e(TAG, "onResume: ");
@@ -216,22 +212,10 @@ public class SubjectFragment extends BaseFragment {
}
public void setCurrentItem() {
mViewPager.setCurrentItem(defaultCurrent);
mViewDataBinding.viewPager.setCurrentItem(defaultCurrent);
}
public void setPageChangeListener(ViewPager.OnPageChangeListener listener) {
this.mListener = listener;
}
private void initView() {
long time = System.currentTimeMillis();
Log.e(TAG, "initView: start " + time);
mFragmentManager = getChildFragmentManager();
mBaseFragmentPagerAdapter = new BaseFragmentPagerAdapter(mFragmentManager, mFragments);
mViewPager.setAdapter(mBaseFragmentPagerAdapter);
mViewPager.setOnPageChangeListener(mListener);
main_sliding_tab_layout.setViewPager(mViewPager, title);
Log.e(TAG, "initView: end = " + (System.currentTimeMillis() - time));
}
}

View File

@@ -1,31 +0,0 @@
package com.uiui.zyos.fragment.user;
import android.graphics.Bitmap;
import com.uiui.zyos.base.mvp.BasePresenter;
import com.uiui.zyos.base.mvp.BaseView;
import com.uiui.zyos.bean.BaseResponse;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.bean.SnInfo;
import com.uiui.zyos.bean.StudyStatBean;
import java.util.ArrayList;
public class UserContact {
public interface Presenter extends BasePresenter<UserView> {
/*获取设备信息*/
void getSnInfo();
void getStudyStat();
void getQrCode();
void getInstalledApp();
void getAppUsedStatistics();
}
public interface UserView extends BaseView {
void setSnInfo(BaseResponse<SnInfo> response);
void setStudyStat(StudyStatBean studyStat);
void setQrCode(Bitmap bitmap);
void setInstalledApp( ArrayList<DesktopIcon> desktopIcons);
void setAppUsedStatistics(long time);
}
}

View File

@@ -11,32 +11,27 @@ import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.shehuan.niv.NiceImageView;
import com.tencent.mmkv.MMKV;
import com.uiui.zyos.R;
import com.uiui.zyos.activity.ExitActivity;
import com.uiui.zyos.activity.more.MoreAppActivity;
import com.uiui.zyos.adapter.AppAdapter;
import com.uiui.zyos.base.BaseFragment;
import com.uiui.zyos.base.mvvm.fragment.BaseMvvmFragment;
import com.uiui.zyos.bean.BaseResponse;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.bean.SnInfo;
import com.uiui.zyos.bean.StudyStatBean;
import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.databinding.FragmentUserBinding;
import com.uiui.zyos.dialog.SingleDialog;
import com.uiui.zyos.jxw.JxwPackageConfig;
import com.uiui.zyos.utils.ApkUtils;
@@ -48,73 +43,20 @@ import com.uiui.zyos.view.RecyclerViewSpacesItemDecoration;
import java.util.ArrayList;
import java.util.HashMap;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A simple {@link Fragment} subclass.
* Use the {@link UserFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class UserFragment extends BaseFragment implements UserContact.UserView {
private static final String TAG = UserFragment.class.getSimpleName();
public class UserFragment extends BaseMvvmFragment<UserViewModel, FragmentUserBinding> {
private static final String TAG = "UserFragment";
@BindView(R.id.iv_avatar)
NiceImageView iv_avatar;
@BindView(R.id.tv_name)
TextView tv_name;
@BindView(R.id.tv_grade)
TextView tv_grade;
@BindView(R.id.tv_exit)
TextView tv_exit;
@BindView(R.id.iv_speaker)
ImageView iv_speaker;
@BindView(R.id.tv_notification)
TextView tv_notification;
@BindView(R.id.cl_nodata)
ConstraintLayout cl_nodata;
@BindView(R.id.cl_usedata)
ConstraintLayout cl_usedata;
@BindView(R.id.tv_percent)
TextView tv_percent;
@BindView(R.id.tv_activated)
TextView tv_activated;
@BindView(R.id.tv_activated2)
TextView tv_activated2;
@BindView(R.id.tv_applet)
TextView tv_applet;
@BindView(R.id.tv_duration)
TextView tv_duration;
@BindView(R.id.tv_date1)
TextView tv_date1;
@BindView(R.id.iv_applet_qrcode)
NiceImageView iv_applet_qrcode;
@BindView(R.id.iv_device_qrcode)
NiceImageView iv_device_qrcode;
@BindView(R.id.cl_app)
ConstraintLayout cl_app;
@BindView(R.id.tv_date2)
TextView tv_date2;
@BindView(R.id.cl_more)
ConstraintLayout cl_more;
@BindView(R.id.rv_app)
RecyclerView rv_app;
@BindView(R.id.iv_nodata)
ImageView iv_nodata;
@BindView(R.id.tv_activation)
TextView tv_activation;
@BindView(R.id.cl_bind_statu)
ConstraintLayout cl_bind_statu;
@BindView(R.id.iv_bind)
ImageView iv_bind;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private FragmentActivity mContext;
private AppAdapter mAppAdapter;
private UserPresenter mPresenter;
private View rootView;
private FragmentActivity mContext;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
@@ -158,85 +100,65 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
// mPresenter.getInstalledApp();
// mPresenter.getSnInfo();
protected int getLayoutId() {
return R.layout.fragment_user;
}
@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_user, container, false);
mContext = (FragmentActivity) rootView.getContext();
mPresenter = new UserPresenter(mContext);
mPresenter.attachView(this);
mPresenter.setLifecycle(getLifecycleSubject());
ButterKnife.bind(this, rootView);
initView();
}
return rootView;
protected void initDataBinding() {
mContext = getActivity();
mViewModel.setCtx(getCtx());
mViewModel.setLifecycle(getLifecycleSubject());
mViewModel.setVDBinding(mViewDataBinding);
// mViewDataBinding.setClick(new BtnClick());
}
@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
}
private void initView() {
protected void initView(Bundle bundle) {
Log.e(TAG, "initView: ");
tv_notification.requestFocus();
tv_activated2.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.tvNotification.requestFocus();
mViewDataBinding.tvActivated2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME, JxwPackageConfig.JXW_LAUNCHER_UPDATE_CLASS_NAME);
}
});
tv_activated.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.tvActivated.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity");
OpenApkUtils.getInstance().openAppWithoutArgs(JxwPackageConfig.JXW_LAUNCHER_PACKAGE_NAME, JxwPackageConfig.JXW_LAUNCHER_UPDATE_CLASS_NAME);
}
});
tv_applet.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.tvApplet.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity");
}
});
iv_avatar.setOnClickListener(view -> ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity"));
iv_applet_qrcode.setOnClickListener(view -> ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity"));
iv_device_qrcode.setOnClickListener(view -> ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity"));
mViewDataBinding.ivAvatar.setOnClickListener(view -> ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity"));
mViewDataBinding.ivAppletQrcode.setOnClickListener(view -> ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity"));
mViewDataBinding.ivDeviceQrcode.setOnClickListener(view -> ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity"));
registerOwnReceiver();
String name = mMMKV.decodeString("USERINFO_NAME", "");
if (TextUtils.isEmpty(name)) {
tv_name.setText(getString(R.string.default_nickname));
mViewDataBinding.tvName.setText(getString(R.string.default_nickname));
} else {
tv_name.setText(name);
mViewDataBinding.tvName.setText(name);
}
String grade = mMMKV.decodeString("USERINFO_GRADE", "");
if (TextUtils.isEmpty(grade)) {
tv_grade.setText(getString(R.string.default_grade));
mViewDataBinding.tvGrade.setText(getString(R.string.default_grade));
} else {
tv_grade.setText(grade);
mViewDataBinding.tvGrade.setText(grade);
}
int logined = mMMKV.decodeInt(CommonConfig.isLogined, 0);
if (logined == 1) {
cl_nodata.setVisibility(View.GONE);
cl_usedata.setVisibility(View.VISIBLE);
mViewDataBinding.clNodata.setVisibility(View.GONE);
mViewDataBinding.clUsedata.setVisibility(View.VISIBLE);
}
setButtonVisibility();
tv_exit.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.tvExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("Receiver_Refresh_Password_Action");
@@ -251,30 +173,30 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
}
}
});
tv_activation.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.ivActivation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity");
}
});
String avatar = mMMKV.decodeString("USERINFO_AVATAR", "");
Glide.with(iv_avatar).load(avatar).error(R.drawable.default_avatar).into(iv_avatar);
tv_date1.setText(TimeUtils.getDateAndWeek(System.currentTimeMillis()));
tv_date2.setText(TimeUtils.getDateAndWeek(System.currentTimeMillis()));
cl_more.setOnClickListener(new View.OnClickListener() {
Glide.with(mViewDataBinding.ivAvatar).load(avatar).error(R.drawable.default_avatar).into(mViewDataBinding.ivAvatar);
mViewDataBinding.tvDate1.setText(TimeUtils.getDateAndWeek(System.currentTimeMillis()));
mViewDataBinding.tvDate2.setText(TimeUtils.getDateAndWeek(System.currentTimeMillis()));
mViewDataBinding.clMore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(mContext, MoreAppActivity.class));
}
});
cl_bind_statu.setOnClickListener(new View.OnClickListener() {
mViewDataBinding.clBindStatu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ApkUtils.openPackage(mContext, "com.uiui.zy", "com.uiui.zy.activity.main.MainActivity");
}
});
rv_app.setLayoutManager(new GridLayoutManager(mContext, 4));
mViewDataBinding.rvApp.setLayoutManager(new GridLayoutManager(mContext, 4));
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
@@ -284,9 +206,117 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 1));//底部间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 20));//左间距
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 20));//右间距
rv_app.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mViewDataBinding.rvApp.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mAppAdapter = new AppAdapter();
rv_app.setAdapter(mAppAdapter);
mViewDataBinding.rvApp.setAdapter(mAppAdapter);
}
@Override
protected void initData(Bundle savedInstanceState) {
mViewModel.mSnInfoData.observe(this, new Observer<BaseResponse<SnInfo>>() {
@Override
public void onChanged(BaseResponse<SnInfo> snInfoBaseResponse) {
if (snInfoBaseResponse != null) {
//设备已经绑定
switch (snInfoBaseResponse.code) {
case 200://设备已经绑定
SnInfo snInfo = snInfoBaseResponse.data;
Glide.with(mViewDataBinding.ivAvatar).load(snInfo.getAvatar()).error(R.drawable.default_avatar).into(mViewDataBinding.ivAvatar);
String name = snInfo.getSn_name();
String grade = snInfo.getGrade();
if (TextUtils.isEmpty(name)) {
mViewDataBinding.tvName.setText(getString(R.string.default_nickname));
} else {
mViewDataBinding.tvName.setText(name);
}
if (TextUtils.isEmpty(grade)) {
mViewDataBinding.tvGrade.setText(getString(R.string.default_grade));
} else {
mViewDataBinding.tvGrade.setText(grade);
}
mViewDataBinding.tvPercent.setText(snInfo.getStudy_time_ranking() + "%");
mViewDataBinding.tvDuration.setText(String.format(getString(R.string.today_study_time), TimeUtils.formatTime(snInfo.getStudy_time())));
mViewDataBinding.clNodata.setVisibility(View.GONE);
mViewDataBinding.clUsedata.setVisibility(View.VISIBLE);
mViewDataBinding.ivBind.setVisibility(View.GONE);
break;
case 300: //设备没有绑定
case 400://没有授权的设备
case 403://设备归属不存在
case 402://sn不存在
mViewDataBinding.tvName.setText(getString(R.string.unbind));
mViewDataBinding.tvGrade.setText(getString(R.string.notset));
mViewDataBinding.clNodata.setVisibility(View.VISIBLE);
mViewDataBinding.clUsedata.setVisibility(View.GONE);
mViewDataBinding.ivBind.setVisibility(View.VISIBLE);
break;
// Toaster.show(getString(R.string.device_unauthorized));
// Log.e(TAG, "setSnInfo: " + getString(R.string.device_unauthorized));
// tvName.setText(getString(R.string.device_unauthorized));
// tvGrade.setText(getString(R.string.device_unauthorized));
// clNodata.setVisibility(View.GONE);
// clUsedata.setVisibility(View.GONE);
// break;
default:
}
}
setButtonVisibility();
mViewModel.getStudyStat();
mViewModel.getQrCode();
}
});
mViewModel.mStudyStatBeanData.observe(this, new Observer<StudyStatBean>() {
@Override
public void onChanged(StudyStatBean studyStatBean) {
if (studyStatBean != null) {
// tv_percent.setText(studyStat.getStudy_exceed() + "%");
}
}
});
mViewModel.mQrCodeData.observe(this, new Observer<Bitmap>() {
@Override
public void onChanged(Bitmap bitmap) {
mViewDataBinding.ivDeviceQrcode.setImageBitmap(bitmap);
}
});
mViewModel.mDesktopListIconData.observe(this, new Observer<ArrayList<DesktopIcon>>() {
@Override
public void onChanged(ArrayList<DesktopIcon> desktopIcons) {
Log.e(TAG, "setInstalledApp: " + desktopIcons);
if (desktopIcons == null || desktopIcons.size() == 0) {
mViewDataBinding.ivNodata.setVisibility(View.VISIBLE);
mViewDataBinding.rvApp.setVisibility(View.INVISIBLE);
} else {
mViewDataBinding.ivNodata.setVisibility(View.GONE);
mViewDataBinding.rvApp.setVisibility(View.VISIBLE);
mAppAdapter.setDesktopIcons(desktopIcons);
}
mViewModel.getAppUsedStatistics();
}
});
mViewModel.mAppUsedData.observe(this, new Observer<Long>() {
@Override
public void onChanged(Long time) {
Log.e(TAG, "setAppUsedStatistics: " + time);
String useTime = TimeUtils.formatTime(time);
// tv_duration.setText(String.format(getString(R.string.today_study_time), useTime));
}
});
}
@Override
public void fetchData() {
Log.e(TAG, "fetchData: ");
// mPresenter.getInstalledApp();
// mPresenter.getSnInfo();
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
private void showSingleDialog() {
@@ -338,16 +368,16 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
int is_activation = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_ACTIVATION_KEY, 0);
Log.e(TAG, "setButtonVisibility: " + is_activation);
if (is_activation != 1) {
// tv_exit.setVisibility(View.VISIBLE);
tv_activation.setVisibility(View.VISIBLE);
// tvExit.setVisibility(View.VISIBLE);
mViewDataBinding.ivActivation.setVisibility(View.VISIBLE);
} else {
int isReturnAndroid = Settings.Global.getInt(mContext.getContentResolver(), CommonConfig.UIUI_RETURN_ANDROID_KEY, 1);
if (isReturnAndroid == 0) {
// tv_exit.setVisibility(View.INVISIBLE);
// tvExit.setVisibility(View.INVISIBLE);
} else {
// tv_exit.setVisibility(View.VISIBLE);
// tvExit.setVisibility(View.VISIBLE);
}
tv_activation.setVisibility(View.GONE);
mViewDataBinding.ivActivation.setVisibility(View.GONE);
}
}
@@ -356,18 +386,19 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
super.setUserVisibleHint(isVisibleToUser);
Log.e(TAG, "setUserVisibleHint: " + isVisibleToUser);
if (isVisibleToUser && isViewInitiated) {
mPresenter.getInstalledApp();
mPresenter.getSnInfo();
mViewModel.getInstalledApp();
mViewModel.getSnInfo();
setButtonVisibility();
}
}
@Override
public void onResume() {
super.onResume();
Log.e(TAG, "onResume: ");
setButtonVisibility();
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
@Override
@@ -377,92 +408,6 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
unregisterOwnReceiver();
}
@Override
public void setSnInfo(BaseResponse<SnInfo> response) {
if (response != null) {
//设备已经绑定
switch (response.code) {
case 200://设备已经绑定
SnInfo snInfo = response.data;
Glide.with(iv_avatar).load(snInfo.getAvatar()).error(R.drawable.default_avatar).into(iv_avatar);
String name = snInfo.getSn_name();
String grade = snInfo.getGrade();
if (TextUtils.isEmpty(name)) {
tv_name.setText(getString(R.string.default_nickname));
} else {
tv_name.setText(name);
}
if (TextUtils.isEmpty(grade)) {
tv_grade.setText(getString(R.string.default_grade));
} else {
tv_grade.setText(grade);
}
tv_percent.setText(snInfo.getStudy_time_ranking() + "%");
tv_duration.setText(String.format(getString(R.string.today_study_time), TimeUtils.formatTime(snInfo.getStudy_time())));
cl_nodata.setVisibility(View.GONE);
cl_usedata.setVisibility(View.VISIBLE);
iv_bind.setImageDrawable(mContext.getDrawable(R.drawable.icon_device_bind));
break;
case 300: //设备没有绑定
case 400://没有授权的设备
case 403://设备归属不存在
case 402://sn不存在
tv_name.setText(getString(R.string.unbind));
tv_grade.setText(getString(R.string.notset));
cl_nodata.setVisibility(View.VISIBLE);
cl_usedata.setVisibility(View.GONE);
iv_bind.setImageDrawable(mContext.getDrawable(R.drawable.icon_device_unbind));
break;
// Toaster.show(getString(R.string.device_unauthorized));
// Log.e(TAG, "setSnInfo: " + getString(R.string.device_unauthorized));
// tv_name.setText(getString(R.string.device_unauthorized));
// tv_grade.setText(getString(R.string.device_unauthorized));
// cl_nodata.setVisibility(View.GONE);
// cl_usedata.setVisibility(View.GONE);
// break;
default:
}
}
setButtonVisibility();
mPresenter.getStudyStat();
mPresenter.getQrCode();
}
@Override
public void setStudyStat(StudyStatBean studyStat) {
if (studyStat != null) {
// tv_percent.setText(studyStat.getStudy_exceed() + "%");
}
}
@Override
public void setQrCode(Bitmap bitmap) {
iv_device_qrcode.setImageBitmap(bitmap);
}
@Override
public void setInstalledApp(ArrayList<DesktopIcon> desktopIcons) {
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);
}
mPresenter.getAppUsedStatistics();
}
@Override
public void setAppUsedStatistics(long time) {
Log.e(TAG, "setAppUsedStatistics: " + time);
String useTime = TimeUtils.formatTime(time);
// tv_duration.setText(String.format(getString(R.string.today_study_time), useTime));
}
private void registerOwnReceiver() {
registerTimeReceiver();
registerRefreshReceiver();
@@ -513,8 +458,8 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
case Intent.ACTION_TIME_CHANGED:
case Intent.ACTION_TIMEZONE_CHANGED:
case Intent.ACTION_TIME_TICK:
tv_date1.setText(TimeUtils.getDateAndWeek(System.currentTimeMillis()));
tv_date2.setText(TimeUtils.getDateAndWeek(System.currentTimeMillis()));
mViewDataBinding.tvDate1.setText(TimeUtils.getDateAndWeek(System.currentTimeMillis()));
mViewDataBinding.tvDate2.setText(TimeUtils.getDateAndWeek(System.currentTimeMillis()));
default:
break;
}
@@ -540,7 +485,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
String action = intent.getAction();
Log.e("RefreshReceiver", "onReceive: " + action);
if (ACTION_REFRESH_BINDING_STATUS.equals(action)) {
mPresenter.getSnInfo();
mViewModel.getSnInfo();
setButtonVisibility();
}
}
@@ -570,7 +515,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
return;
}
if (UPDATE_DESKTOP_ICON_ACTION.equals(action)) {
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
}
}
@@ -600,7 +545,7 @@ public class UserFragment extends BaseFragment implements UserContact.UserView {
if (TextUtils.isEmpty(action)) {
return;
}
mPresenter.getInstalledApp();
mViewModel.getInstalledApp();
}
}

View File

@@ -1,23 +1,26 @@
package com.uiui.zyos.fragment.user;
import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.util.Log;
import androidx.lifecycle.MutableLiveData;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiui.zyos.BuildConfig;
import com.uiui.zyos.R;
import com.uiui.zyos.base.mvvm.BaseViewModel;
import com.uiui.zyos.bean.AppUsed;
import com.uiui.zyos.bean.BaseResponse;
import com.uiui.zyos.bean.DesktopIcon;
import com.uiui.zyos.bean.SnInfo;
import com.uiui.zyos.bean.StudyStatBean;
import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.disklrucache.CacheHelper;
import com.uiui.zyos.databinding.FragmentUserBinding;
import com.uiui.zyos.manager.AppManager;
import com.uiui.zyos.manager.RemoteManager;
import com.uiui.zyos.network.NetInterfaceManager;
@@ -35,40 +38,24 @@ import java.util.stream.Collectors;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
public class UserPresenter implements UserContact.Presenter {
private static final String TAG = UserPresenter.class.getSimpleName();
private UserContact.UserView mView;
private Context mContext;
private CacheHelper mCacheHelper;
public class UserViewModel extends BaseViewModel<FragmentUserBinding, FragmentEvent> {
private static final String TAG = "UserViewModel";
public UserPresenter(Context context) {
this.mContext = context;
this.mCacheHelper = new CacheHelper(context);
}
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private BehaviorSubject<FragmentEvent> lifecycle;
void setLifecycle(BehaviorSubject<FragmentEvent> lifecycle) {
this.lifecycle = lifecycle;
}
public BehaviorSubject<FragmentEvent> getLifecycle() {
return lifecycle;
@Override
public FragmentUserBinding getVDBinding() {
return binding;
}
@Override
public void attachView(@NonNull UserContact.UserView view) {
this.mView = view;
public void onDestroy() {
}
@Override
public void detachView() {
this.mView = null;
}
public MutableLiveData<BaseResponse<SnInfo>> mSnInfoData = new MutableLiveData<>();
@Override
public void getSnInfo() {
NetInterfaceManager.getInstance().getSnInfo(getLifecycle(), new NetInterfaceManager.ObserverCallback() {
@Override
@@ -79,18 +66,18 @@ public class UserPresenter implements UserContact.Presenter {
@Override
public void onNext(BaseResponse response) {
Log.e("getSnInfo", "onNext: " + response);
mView.setSnInfo(response);
mSnInfoData.setValue(response);
}
@Override
public void onError(Throwable e) {
Log.e("getSnInfo", "onError: " + e.getMessage());
String jsonString = mCacheHelper.getAsString(UrlAddress.SNINFO);
String jsonString = mMMKV.decodeString(UrlAddress.SNINFO);
Gson gson = new Gson();
Type type = new TypeToken<BaseResponse<SnInfo>>() {
}.getType();
BaseResponse<SnInfo> userInfoBaseResponse = gson.fromJson(jsonString, type);
mView.setSnInfo(userInfoBaseResponse);
mSnInfoData.setValue(userInfoBaseResponse);
}
@Override
@@ -100,14 +87,15 @@ public class UserPresenter implements UserContact.Presenter {
});
}
@Override
public MutableLiveData<StudyStatBean> mStudyStatBeanData = new MutableLiveData<>();
public void getStudyStat() {
boolean activation = ActivationUtil.isActivation(mContext);
boolean activation = ActivationUtil.isActivation(getCtx());
if (!activation) {
return;
}
NetInterfaceManager.getInstance().getStudyStatObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, FragmentEvent.DESTROY))
.compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY))
.subscribe(new Observer<BaseResponse<StudyStatBean>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
@@ -119,9 +107,9 @@ public class UserPresenter implements UserContact.Presenter {
Log.e("getStudyStat", "onNext: " + studyStatBeanBaseResponse);
if (studyStatBeanBaseResponse.code == 200) {
StudyStatBean studyStatBean = studyStatBeanBaseResponse.data;
mView.setStudyStat(studyStatBean);
mStudyStatBeanData.setValue(studyStatBean);
} else {
mView.setStudyStat(null);
mStudyStatBeanData.setValue(null);
}
}
@@ -138,15 +126,17 @@ public class UserPresenter implements UserContact.Presenter {
});
}
@Override
public MutableLiveData<Bitmap> mQrCodeData = new MutableLiveData<>();
public void getQrCode() {
String encryptString = CXAESUtil.encrypt(CommonConfig.AES_KEY, RemoteManager.getInstance().getSerial());
Log.e("getQRCode", "setImageAndText: " + encryptString);
Bitmap bitmap = Utils.createQRImage(encryptString, 400, 400);
mView.setQrCode(bitmap);
mQrCodeData.setValue(bitmap);
}
@Override
public MutableLiveData<ArrayList<DesktopIcon>> mDesktopListIconData = new MutableLiveData<>();
public void getInstalledApp() {
ArrayList<DesktopIcon> desktopIcons = AppManager.getInstance().getFilterAppList();
@@ -154,29 +144,30 @@ public class UserPresenter implements UserContact.Presenter {
appstoreDesktopIcon.setLable("应用市场");
appstoreDesktopIcon.setPackageName(AppManager.APPSTORE_PACKAGE_NAME);
appstoreDesktopIcon.setPackageName(AppManager.APPSTORE_CLASS_NAME);
appstoreDesktopIcon.setIcon(mContext.getDrawable(R.drawable.com_android_appstore));
appstoreDesktopIcon.setIcon(getCtx().getDrawable(R.drawable.com_android_appstore));
desktopIcons.add(desktopIcons.size(), appstoreDesktopIcon);
DesktopIcon updateDesktopIcon = new DesktopIcon();
updateDesktopIcon.setLable("应用更新");
updateDesktopIcon.setPackageName(AppManager.UPDATE_NAME);
updateDesktopIcon.setIcon(mContext.getDrawable(R.drawable.icon_update));
updateDesktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_update));
desktopIcons.add(desktopIcons.size(), updateDesktopIcon);
DesktopIcon desktopIcon = new DesktopIcon();
desktopIcon.setLable("添加应用");
desktopIcon.setPackageName(AppManager.ADD_NAME);
desktopIcon.setIcon(mContext.getDrawable(R.drawable.icon_add));
desktopIcon.setIcon(getCtx().getDrawable(R.drawable.icon_add));
desktopIcons.add(desktopIcons.size(), desktopIcon);
mView.setInstalledApp(desktopIcons);
mDesktopListIconData.setValue(desktopIcons);
}
@Override
public MutableLiveData<Long> mAppUsedData = new MutableLiveData<>();
public void getAppUsedStatistics() {
String jsonString = RemoteManager.getInstance().getAppUsedStatistics();
if (TextUtils.isEmpty(jsonString)) {
mView.setAppUsedStatistics(0);
mAppUsedData.setValue((long) 0);
} else {
Gson gson = new Gson();
Type listType = new TypeToken<List<AppUsed>>() {
@@ -192,10 +183,10 @@ public class UserPresenter implements UserContact.Presenter {
}
}).collect(Collectors.toList());
long time = appUseTime.stream().mapToLong(AppUsed::getUseTime).sum();
mView.setAppUsedStatistics(time);
mAppUsedData.setValue(time);
} catch (Exception e) {
Log.e(TAG, "getAppUsedStatistics: " + e.getMessage());
mView.setAppUsedStatistics(0);
mAppUsedData.setValue((long) 0);
}
}
}

View File

@@ -20,7 +20,7 @@ public class IconPositionManager {
private IconPositionDBHelper mDBHelper;
private static final String TABLE_NAME = "DesktopIcon";
private static String TAG = IconPositionManager.class.getSimpleName();
private static final String TAG = "IconPositionManager";
private IconPositionManager(Context context) {
if (context == null) {

View File

@@ -27,7 +27,7 @@ import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class AmapManager {
private static final String TAG = AmapManager.class.getSimpleName();
private static final String TAG = "AmapManager";
MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);

View File

@@ -27,7 +27,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
public class AppManager {
private static final String TAG = AppManager.class.getSimpleName();
private static final String TAG = "AppManager";
public static final String ADD_NAME = "com.zyos.add";
public static final String APPSTORE_PACKAGE_NAME = "com.uiui.zyappstore";

View File

@@ -9,7 +9,7 @@ import com.uiui.zyos.config.CommonConfig;
import com.uiui.zyos.utils.TimeUtils;
public class ConnectManager {
private static final String TAG = ConnectManager.class.getSimpleName();
private static final String TAG = "ConnectManager";
public static final long ONE_MINUTES_TIME = 60 * 1000;

View File

@@ -14,22 +14,18 @@ import android.util.Log;
import com.alibaba.sdk.android.push.CloudPushService;
import com.alibaba.sdk.android.push.CommonCallback;
import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.tencent.bugly.crashreport.CrashReport;
import com.tencent.mmkv.MMKV;
import com.uiui.zy.IGetInfoInterface;
import com.uiui.zyos.bean.MapBean;
import com.uiui.zyos.config.CommonConfig;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class RemoteManager {
private static final String TAG = RemoteManager.class.getSimpleName();
private static final String TAG = "RemoteManager";
@SuppressLint("StaticFieldLeak")
private static RemoteManager sInstance;
@@ -58,7 +54,7 @@ public class RemoteManager {
mGetInfoInterface = IGetInfoInterface.Stub.asInterface(service);
mServiceConnected = true;
for (ConnectedListener listener : mListeners) {
listener.onConnected();
listener.onRemoteConnected();
}
try {
String sn = mGetInfoInterface.getSerial();
@@ -118,7 +114,7 @@ public class RemoteManager {
}
public interface ConnectedListener {
void onConnected();
void onRemoteConnected();
}
private static Set<ConnectedListener> mListeners = new HashSet<>();
@@ -126,7 +122,7 @@ public class RemoteManager {
public static void setListener(ConnectedListener listener) {
mListeners.add(listener);
if (mServiceConnected) {
listener.onConnected();
listener.onRemoteConnected();
}
}

View File

@@ -14,6 +14,7 @@ import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiui.zyos.alarm.AlarmUtils;
import com.uiui.zyos.bean.AlarmClockData;
import com.uiui.zyos.bean.BaseResponse;
import com.uiui.zyos.bean.GuideBean;
import com.uiui.zyos.bean.LessonApp;
import com.uiui.zyos.bean.LessonJson;
import com.uiui.zyos.bean.LessonSetting;
@@ -28,6 +29,7 @@ import com.uiui.zyos.network.api.AlarmClockApi;
import com.uiui.zyos.network.api.AppUsageRecordApi;
import com.uiui.zyos.network.api.CloudLessonApi;
import com.uiui.zyos.network.api.CloudLessonAppApi;
import com.uiui.zyos.network.api.GetFilesApi;
import com.uiui.zyos.network.api.RunNewApp;
import com.uiui.zyos.network.api.SNInfoApi;
import com.uiui.zyos.network.api.StudyStatApi;
@@ -60,6 +62,8 @@ import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
public class NetInterfaceManager {
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
@SuppressLint("StaticFieldLeak")
private static NetInterfaceManager INSTANCE;
private Context mContext;
@@ -67,7 +71,6 @@ public class NetInterfaceManager {
private Retrofit mRetrofit;
private OkHttpClient okHttpClient;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private final ConcurrentHashMap<String, Long> requestIdsMap = new ConcurrentHashMap<>();
//超时时间
@@ -224,6 +227,12 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<GuideBean>> getFilesObservable(int type) {
return mRetrofit.create(GetFilesApi.class)
.getFiles(type)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/*
*
@@ -300,7 +309,7 @@ public class NetInterfaceManager {
if (callback != null) {
callback.onNext(userInfoBaseResponse);
}
mCacheHelper.put(UrlAddress.SNINFO, GsonUtils.toJSONString(userInfoBaseResponse));
mMMKV.encode(UrlAddress.SNINFO, GsonUtils.toJSONString(userInfoBaseResponse));
int code = userInfoBaseResponse.code;
if (userInfoBaseResponse.code == 200) {
mMMKV.encode(CommonConfig.isLogined, 1);
@@ -319,13 +328,13 @@ public class NetInterfaceManager {
mMMKV.encode("USERINFO_AVATAR", snInfo.getGrade());
}
} else if (code == 300) {
mCacheHelper.put(UrlAddress.SNINFO, "");
mMMKV.encode(UrlAddress.SNINFO, "");
mMMKV.encode(CommonConfig.isLogined, 0);
} else if (code == 400) {
mCacheHelper.put(UrlAddress.SNINFO, "");
mMMKV.encode(UrlAddress.SNINFO, "");
mMMKV.encode(CommonConfig.isLogined, 2);
} else {
mCacheHelper.put(UrlAddress.SNINFO, "");
mMMKV.encode(UrlAddress.SNINFO, "");
mMMKV.encode(CommonConfig.isLogined, 0);
}
}

View File

@@ -21,6 +21,8 @@ public class UrlAddress {
/*爱心提醒通知成功*/
public static final String UPDATE_ALARM_CLOCK = "updateAlarmClock";
/*获取文件*/
public static final String GET_FILES = "file/getFiles";
/*网课模式*/
public final static String GET_CLOUD_LESSON = "Control/getCloudLessonSetting";

View File

@@ -0,0 +1,16 @@
package com.uiui.zyos.network.api;
import com.uiui.zyos.bean.BaseResponse;
import com.uiui.zyos.bean.GuideBean;
import com.uiui.zyos.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface GetFilesApi {
@GET(UrlAddress.GET_FILES)
Observable<BaseResponse<GuideBean>> getFiles(
@Query("type") int type
);
}

View File

@@ -22,7 +22,7 @@ import okio.Buffer;
* v1.0 2022-07-15 16:16:52
*/
public class RepeatRequestInterceptor implements Interceptor {
private static final String TAG = RepeatRequestInterceptor.class.getSimpleName();
private static final String TAG = "RepeatRequestInterceptor";
private final ConcurrentHashMap<String, Long> requestIdsMap = new ConcurrentHashMap<>();
public static final String REPEAT_REQUEST_PROTOCOL = "OKHTTP_REPEAT_REQUEST_PROTOCOL";
@@ -39,7 +39,7 @@ public class RepeatRequestInterceptor implements Interceptor {
// Response copy = response.newBuilder().body(responseBody).build();
ResponseBody copy = ResponseBody.create(responseBody.contentType(), content);
if (BuildConfig.DEBUG) {
// Log.e(TAG, "请求体返回:| Response: " + request.url().encodedPath() + "\t body: " + content);
Log.e(TAG, "请求体返回:| Response: " + request.url() + "\t body: " + content);
}
//相同的请求
String requestKey = MD5Util.getUpperMD5Str(request.method() + request.url().toString() + requestBodyToString(request.body()));

View File

@@ -10,7 +10,7 @@ import com.uiui.zyos.network.NetInterfaceManager;
import com.hjq.toast.Toaster;
public class PushManager {
private static final String TAG = PushManager.class.getSimpleName();
private static final String TAG = "PushManager";
public static final String SET_ALARMCLOCK = "zuoyeos.action.change.alarmclaock";

View File

@@ -18,7 +18,7 @@ import java.util.Map;
*/
public class AliMessageIntentService extends AliyunMessageIntentService {
private static final String TAG = AliyunMessageIntentService.class.getSimpleName();
private static final String TAG = "AliyunMessageIntentService";
/**
* 推送通知的回调方法

View File

@@ -19,7 +19,7 @@ import java.util.Map;
*/
public class AliyunMessageReceiver extends MessageReceiver {
// 消息接收部分的LOG_TAG
public static final String TAG = AliyunMessageReceiver.class.getSimpleName();
public static final String TAG = "AliyunMessageReceiver";
/**
* 推送通知的回调方法

View File

@@ -9,7 +9,7 @@ import com.uiui.zyos.fragment.user.UserFragment;
public class APKinstallReceiver extends BroadcastReceiver {
private static final String TAG = APKinstallReceiver.class.getSimpleName();
private static final String TAG = "APKinstallReceiver";
@Override
public void onReceive(final Context context, Intent intent) {

View File

@@ -15,7 +15,7 @@ import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class BootReceiver extends BroadcastReceiver {
private static final String TAG = BootReceiver.class.getSimpleName();
private static final String TAG = "BootReceiver";
public static final String BOOT_COMPLETED = "zuoyeos.action.BOOT_COMPLETED";
public static final String SOS = "zyos.action.SOS";

View File

@@ -10,7 +10,7 @@ import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.task.DownloadTask;
public class DownloadService extends Service {
private static final String TAG = DownloadService.class.getSimpleName();
private static final String TAG = "DownloadService";
public DownloadService() {
}

View File

@@ -14,7 +14,7 @@ import java.util.Set;
* @author TT
*/
public class NotificationService extends NotificationListenerService {
private static final String TAG = NotificationService.class.getSimpleName();
private static final String TAG = "NotificationService";
private static HashMap<String, List<StatusBarNotification>> notificationMap = new HashMap<String, List<StatusBarNotification>>();
private static Set<NotificationListener> mListener = new HashSet<NotificationListener>();

View File

@@ -10,12 +10,9 @@ public class MainSContact {
public interface Presenter extends BasePresenter<MainSView> {
/*获取网课模式*/
void getCloudLessonSettings();
/*获取闹钟*/
void getAlarmClock();
}
public interface MainSView extends BaseView {
void setCloudLessonSettings();
void setAlarmClock(List<AlarmClockData> dataList);
}
}

View File

@@ -20,7 +20,7 @@ import io.reactivex.rxjava3.subjects.BehaviorSubject;
* @author jgy02
*/
public class MainSPresenter implements MainSContact.Presenter {
private static final String TAG = MainSPresenter.class.getSimpleName();
private static final String TAG = "MainSPresenter";
private static final int OK = 200;
private MainSContact.MainSView mView;
private Context mContext;
@@ -61,7 +61,6 @@ public class MainSPresenter implements MainSContact.Presenter {
});
}
@Override
public void getAlarmClock() {
NetInterfaceManager.getInstance().getAlarmClock(true, getLifecycle(), new NetInterfaceManager.AlarmClockCallback() {
@Override

View File

@@ -20,7 +20,7 @@ import java.util.HashMap;
import java.util.List;
public class MainService extends BaseRxService implements MainSContact.MainSView, NetworkUtils.OnNetworkStatusChangedListener {
private static final String TAG = MainService.class.getSimpleName();
private static final String TAG = "MainService";
public MainSPresenter mPresenter;
@@ -154,11 +154,7 @@ public class MainService extends BaseRxService implements MainSContact.MainSView
@Override
public void setCloudLessonSettings() {
// mPresenter.getAlarmClock();
}
@Override
public void setAlarmClock(List<AlarmClockData> dataList) {
}
}

View File

@@ -100,7 +100,7 @@ public class ApkUtils {
// this.add("com.android.settings");
this.add("com.android.messaging");
this.add("com.android.camera2");
this.add("com.android.mms");
// this.add("com.android.mms");
// this.add("com.uiui.city");
// this.add("com.android.fmradio");
// this.add("com.android.documentsui");
@@ -126,7 +126,7 @@ public class ApkUtils {
public static final String ANDROID_LAUNCHER3_CLASS_NAME = "com.android.launcher3.Launcher";
public static final String ANDROID_LAUNCHER3_Quickstep_CLASS_NAME = "com.android.launcher3.uioverrides.QuickstepLauncher";
private static String TAG = ApkUtils.class.getSimpleName();
private static final String TAG = "ApkUtils";
public static ArrayList<ApplicationInfo> getSystemApp(Context context) {
PackageManager pm = context.getPackageManager();

View File

@@ -27,7 +27,7 @@ import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class AppUsedTimeUtils {
private static final String TAG = AppUsedTimeUtils.class.getSimpleName();
private static final String TAG = "AppUsedTimeUtils";
@SuppressLint("StaticFieldLeak")
private static AppUsedTimeUtils sInstance;

View File

@@ -18,7 +18,7 @@ public class ForegroundAppUtil {
private static final long START_TIME = END_TIME - TIME_INTERVAL;
public static final String TOPAPP_KEY = "TOP_ALWAYS_SHOW_APP_NAME";
private static String TAG = ForegroundAppUtil.class.getSimpleName();
private static final String TAG = "ForegroundAppUtil";
public static String getForegroundPackageName(Context context) {
//系统应用可以直接获取

View File

@@ -16,7 +16,7 @@ import com.bumptech.glide.Glide;
* Created by Li_Xavier on 2017/6/20 0020.
*/
public class GlideLoadUtils {
private String TAG = "ImageLoader";
private static final String TAG = "ImageLoader";
/**
* 借助内部类 实现线程安全的单例模式

View File

@@ -27,7 +27,7 @@ import java.util.Set;
import java.util.function.BiConsumer;
public class OpenApkUtils {
private static final String TAG = OpenApkUtils.class.getSimpleName();
private static final String TAG = "OpenApkUtils";
@SuppressLint("StaticFieldLeak")
private static OpenApkUtils sInstance;

View File

@@ -19,7 +19,7 @@ import java.util.Date;
import java.util.Locale;
public class TimeUtils {
private static final String TAG = TimeUtils.class.getSimpleName();
private static final String TAG = "TimeUtils";
private static DateFormat df = new SimpleDateFormat("HH:mm", Locale.getDefault());

View File

@@ -37,7 +37,7 @@ import java.util.HashMap;
import java.util.Map;
public class Utils {
private static final String TAG = Utils.class.getSimpleName();
private static final String TAG = "Utils";
/**
* 获取设备序列号

View File

@@ -21,8 +21,7 @@ import androidx.recyclerview.widget.RecyclerView;
* 创建时间 : 2020/3/19 4:54 PM
*/
public class GridSpaceItemDecoration extends RecyclerView.ItemDecoration {
private final String TAG = "GridSpaceItemDecoration";
private static final String TAG = "GridSpaceItemDecoration";
private int mSpanCount;//横条目数量
private int mRowSpacing;//行间距

View File

@@ -27,7 +27,7 @@ public class MyGridLayout extends ViewGroup {
int count = 0;
private GridAdatper adapter;
private String TAG = MyGridLayout.class.getSimpleName();
private static final String TAG = "MyGridLayout";
@SuppressLint("Recycle")
public MyGridLayout(Context context, AttributeSet attrs, int defStyle) {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色:这里设置背景透明 -->
<solid android:color="#FFFFFF" />
<!-- 边框的颜色 :不能和窗口背景色一样 -->
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners
android:bottomLeftRadius="@dimen/dp_16"
android:bottomRightRadius="@dimen/dp_16"
android:topLeftRadius="@dimen/dp_16"
android:topRightRadius="@dimen/dp_16" />
<!-- paddingButton里面的文字与Button边界的间隔 -->
<padding
android:bottom="@dimen/dp_2"
android:left="@dimen/dp_8"
android:right="@dimen/dp_8"
android:top="@dimen/dp_2" />
</shape>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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"
tools:context=".activity.ExitActivity">
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/control_background"
tools:context=".activity.ExitActivity">
android:background="@drawable/control_background">
<ImageView
android:id="@+id/imageView5"
@@ -234,3 +240,4 @@
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.app.AppFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -43,3 +49,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.ar.ARStudyFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -40,9 +46,9 @@
android:id="@+id/iv_app"
android:layout_width="@dimen/dp_328"
android:layout_height="@dimen/dp_163"
android:layout_marginTop="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:layout_marginTop="@dimen/dp_8"
android:src="@drawable/ar_study_module"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -74,9 +80,9 @@
android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_28"
android:layout_marginBottom="@dimen/dp_8"
tools:listitem="@layout/item_homework"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
tools:listitem="@layout/item_homework" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -84,3 +90,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.biology.BiologyFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -135,3 +141,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
<layout 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"
tools:context=".fragment.chemical.ChemicalFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -13,11 +19,11 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintVertical_bias="0.35"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.35">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
@@ -135,3 +141,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<com.uiui.zyos.view.CustomContent xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.chinese.ChineseFragment">
<data>
</data>
<com.uiui.zyos.view.CustomContent
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -463,3 +469,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.uiui.zyos.view.CustomContent>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<com.uiui.zyos.view.CustomContent xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.complex.ComplexFragment">
<data>
</data>
<com.uiui.zyos.view.CustomContent
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -440,3 +446,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.uiui.zyos.view.CustomContent>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.english.EnglishFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -13,11 +19,11 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintVertical_bias="0.35"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.35">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
@@ -157,3 +163,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.main.MainFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -42,9 +48,9 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginTop="@dimen/dp_2"
android:layout_marginEnd="@dimen/dp_4"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginBottom="@dimen/dp_4"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
@@ -295,3 +301,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.math.MathFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -416,3 +422,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.physics.PhysicsFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -13,11 +19,11 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintVertical_bias="0.35"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.35">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
@@ -134,3 +140,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,18 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.subject.SubjectFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.flyco.tablayout.SlidingTabLayout
android:id="@+id/main_sliding_tab_layout"
android:layout_width="match_parent"
android:layout_width="@dimen/dp_500"
android:layout_height="@dimen/dp_24"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_2"
@@ -22,8 +28,8 @@
app:layout_constraintTop_toTopOf="parent"
app:tl_indicator_color="#FFFFFF"
app:tl_indicator_style="NORMAL"
app:tl_tab_space_equal="true"
app:tl_indicator_width_equal_title="true"
app:tl_tab_space_equal="false"
app:tl_textBold="SELECT"
app:tl_textSelectSize="@dimen/sp_13"
app:tl_textSize="@dimen/sp_11"
@@ -36,3 +42,4 @@
app:layout_constraintTop_toBottomOf="@+id/main_sliding_tab_layout" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.user.UserFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -109,41 +115,6 @@
app:layout_constraintStart_toEndOf="@+id/iv_speaker"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bind_statu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tv_notification"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imageView15"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/com_uiui_sn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_bind"
android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_4"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_device_unbind"
app:layout_constraintBottom_toBottomOf="@+id/imageView15"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/imageView15"
app:layout_constraintTop_toTopOf="@+id/imageView15" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
@@ -177,7 +148,33 @@
android:id="@+id/cl_nodata"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible">
android:visibility="gone">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bind_statu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/iv_bind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/tv_bind_background"
android:maxLines="1"
android:singleLine="true"
android:text="绑定设备"
android:textColor="@color/black"
android:textSize="@dimen/sp_9"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_activated2"
@@ -213,13 +210,13 @@
android:id="@+id/imageView12"
android:layout_width="@dimen/dp_68"
android:layout_height="@dimen/dp_82"
android:layout_marginTop="@dimen/dp_32"
android:layout_marginTop="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/user_trophy"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/cl_bind_statu" />
<TextView
android:id="@+id/textView8"
@@ -233,29 +230,23 @@
app:layout_constraintStart_toStartOf="@+id/imageView12"
app:layout_constraintTop_toBottomOf="@+id/imageView12" />
<TextView
android:id="@+id/tv_activation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bt_checkupdate_selector"
android:paddingStart="@dimen/dp_8"
android:paddingTop="@dimen/dp_4"
android:paddingEnd="@dimen/dp_8"
android:paddingBottom="@dimen/dp_4"
android:text="点击激活学习系统"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
<ImageView
android:id="@+id/iv_activation"
android:layout_width="@dimen/dp_84"
android:layout_height="@dimen/dp_20"
android:src="@drawable/icon_activition_bind"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView8" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_usedata"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
android:visibility="visible">
<TextView
android:id="@+id/tv_activated"
@@ -272,11 +263,18 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imageView17"
android:layout_width="@dimen/dp_68"
android:layout_height="@dimen/dp_82"
android:layout_marginTop="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/user_trophy"
@@ -327,6 +325,8 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_293"
android:layout_height="@dimen/dp_211"
@@ -482,8 +482,8 @@
<ImageView
android:id="@+id/imageView13"
android:layout_width="@dimen/dp_12"
android:layout_height="@dimen/dp_12"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
@@ -499,6 +499,7 @@
android:text="更多应用"
android:textColor="@color/white"
android:textSize="@dimen/sp_10"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/imageView13"
app:layout_constraintEnd_toStartOf="@+id/imageView13"
app:layout_constraintTop_toTopOf="@+id/imageView13" />
@@ -528,8 +529,10 @@
app:layout_constraintTop_toTopOf="@+id/rv_app" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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"
tools:context=".activity.ExitActivity">
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/control_background"
tools:context=".activity.ExitActivity">
android:background="@drawable/control_background">
<ImageView
android:id="@+id/imageView5"
@@ -234,3 +240,4 @@
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,11 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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"
tools:context=".activity.main.MainActivity">
<data>
<variable
name="click"
type="com.uiui.zyos.activity.main.MainActivity.BtnClick" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/main_background"
tools:context=".activity.main.MainActivity">
android:background="@drawable/main_background">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
@@ -36,6 +45,7 @@
android:layout_height="@dimen/dp_32"
android:layout_marginEnd="@dimen/dp_8"
android:adjustViewBounds="true"
android:onClick="@{click::openRobot}"
android:scaleType="centerCrop"
android:src="@drawable/robot"
app:layout_constraintBottom_toBottomOf="@+id/constraintLayout2"
@@ -70,7 +80,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginEnd="@dimen/dp_4">
android:layout_marginEnd="@dimen/dp_4"
android:onClick="@{click::openAppStore}">
<ImageView
android:id="@+id/iv_icon0"
@@ -133,7 +144,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginEnd="@dimen/dp_4">
android:layout_marginEnd="@dimen/dp_4"
android:onClick="@{click::open2}">
<ImageView
android:id="@+id/iv_icon2"
@@ -258,7 +270,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginEnd="@dimen/dp_4">
android:layout_marginEnd="@dimen/dp_4"
android:onClick="@{click::open6}">
<ImageView
android:id="@+id/iv_icon6"
@@ -290,7 +303,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginEnd="@dimen/dp_4">
android:layout_marginEnd="@dimen/dp_4"
android:onClick="@{click::open7}">
<ImageView
android:id="@+id/iv_icon7"
@@ -323,6 +337,7 @@
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_4"
android:layout_marginEnd="@dimen/dp_4"
android:onClick="@{click::open9}"
android:visibility="visible">
<ImageView
@@ -354,3 +369,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.biology.BiologyFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -135,3 +141,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
<layout 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"
tools:context=".fragment.chemical.ChemicalFragment">
<data>
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -13,11 +19,11 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintVertical_bias="0.35"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.35">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
@@ -135,3 +141,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<com.uiui.zyos.view.CustomContent xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.chinese.ChineseFragment">
<data>
</data>
<com.uiui.zyos.view.CustomContent
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -463,3 +469,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.uiui.zyos.view.CustomContent>
</layout>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<com.uiui.zyos.view.CustomContent xmlns:android="http://schemas.android.com/apk/res/android"
<layout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.complex.ComplexFragment">
<data>
</data>
<com.uiui.zyos.view.CustomContent
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -440,3 +446,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.uiui.zyos.view.CustomContent>
</layout>

Some files were not shown because too many files have changed in this diff Show More