version:3.8
fix:修复报错 update:优化闹钟响铃
This commit is contained in:
@@ -16,8 +16,8 @@ android {
|
|||||||
applicationId "com.uiui.aios"
|
applicationId "com.uiui.aios"
|
||||||
minSdkVersion 24
|
minSdkVersion 24
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 26
|
versionCode 29
|
||||||
versionName "3.5"
|
versionName "3.8"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
package="com.uiui.aios"
|
package="com.uiui.aios"
|
||||||
android:sharedUserId="android.uid.system">
|
android:sharedUserId="android.uid.system">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
|
||||||
<!-- 清单文件中, 申明监听通话精确状态权限,该权限需要android:sharedUserId="android.uid.system" -->
|
<!-- 清单文件中, 申明监听通话精确状态权限,该权限需要android:sharedUserId="android.uid.system" -->
|
||||||
<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
|
||||||
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
|
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
|
||||||
@@ -11,6 +13,9 @@
|
|||||||
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
|
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
|
||||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||||
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
|
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
||||||
|
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||||
<!-- 允许访问网络,必选权限 -->
|
<!-- 允许访问网络,必选权限 -->
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<!-- 允许获取精确位置,精准定位必选 -->
|
<!-- 允许获取精确位置,精准定位必选 -->
|
||||||
|
|||||||
@@ -3,9 +3,13 @@ package com.uiui.aios.activity;
|
|||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.media.AudioManager;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.PowerManager;
|
||||||
|
import android.os.Vibrator;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -25,6 +29,7 @@ import com.uiui.aios.alarm.AlarmUtils;
|
|||||||
import com.uiui.aios.utils.FileUtil;
|
import com.uiui.aios.utils.FileUtil;
|
||||||
import com.uiui.aios.utils.ScreenUtils;
|
import com.uiui.aios.utils.ScreenUtils;
|
||||||
import com.uiui.aios.utils.Utils;
|
import com.uiui.aios.utils.Utils;
|
||||||
|
import com.uiui.aios.utils.WakeUpUtils;
|
||||||
import com.uiui.aios.view.JzvdStdAssert;
|
import com.uiui.aios.view.JzvdStdAssert;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -36,6 +41,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
import cn.jzvd.JZDataSource;
|
||||||
import cn.jzvd.Jzvd;
|
import cn.jzvd.Jzvd;
|
||||||
import io.reactivex.rxjava3.annotations.NonNull;
|
import io.reactivex.rxjava3.annotations.NonNull;
|
||||||
import io.reactivex.rxjava3.core.Observer;
|
import io.reactivex.rxjava3.core.Observer;
|
||||||
@@ -60,6 +66,11 @@ public class NoticeActivity extends AppCompatActivity {
|
|||||||
private AlarmClockData alarmClockData;
|
private AlarmClockData alarmClockData;
|
||||||
private int code;
|
private int code;
|
||||||
private MediaPlayer mediaPlayer;
|
private MediaPlayer mediaPlayer;
|
||||||
|
private PowerManager pm;
|
||||||
|
private PowerManager.WakeLock wakeLock;
|
||||||
|
private AudioManager audioManager;
|
||||||
|
|
||||||
|
private Vibrator vibrator;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -68,9 +79,16 @@ public class NoticeActivity extends AppCompatActivity {
|
|||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
code = intent.getIntExtra("id", -1);
|
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);
|
||||||
if (code == -1) {
|
if (code == -1) {
|
||||||
finish();
|
finish();
|
||||||
} else {
|
} else {
|
||||||
|
wakeLock.acquire(60 * 1000L);
|
||||||
|
long[] pattern = {1000, 5000, 1000, 5000};
|
||||||
|
vibrator.vibrate(pattern, 0);
|
||||||
|
WakeUpUtils.wakeUpAndUnlockScreen(this);
|
||||||
HashMap<Integer, AlarmClockData> oldData = AlarmUtils.getInstance().getOldData();
|
HashMap<Integer, AlarmClockData> oldData = AlarmUtils.getInstance().getOldData();
|
||||||
alarmClockData = oldData.get(code);
|
alarmClockData = oldData.get(code);
|
||||||
if (alarmClockData == null) {
|
if (alarmClockData == null) {
|
||||||
@@ -83,6 +101,9 @@ public class NoticeActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void showData(AlarmClockData alarmClockData) {
|
private void showData(AlarmClockData alarmClockData) {
|
||||||
|
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());
|
tv_title.setText(alarmClockData.getTitle());
|
||||||
bt_ok.setOnClickListener(new View.OnClickListener() {
|
bt_ok.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -165,7 +186,9 @@ public class NoticeActivity extends AppCompatActivity {
|
|||||||
} else if (FileUtil.isVideoFile(fileType)) {
|
} else if (FileUtil.isVideoFile(fileType)) {
|
||||||
jz_video.setVisibility(View.VISIBLE);
|
jz_video.setVisibility(View.VISIBLE);
|
||||||
imageView.setVisibility(View.GONE);
|
imageView.setVisibility(View.GONE);
|
||||||
jz_video.setUp(filePath, "");
|
JZDataSource jzDataSource = new JZDataSource(filePath, "");
|
||||||
|
jzDataSource.looping = true;
|
||||||
|
jz_video.setUp(jzDataSource, Jzvd.SCREEN_NORMAL);
|
||||||
jz_video.startVideo();
|
jz_video.startVideo();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
package com.uiui.aios.activity.alarm;
|
package com.uiui.aios.activity.alarm;
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
@@ -11,6 +16,7 @@ import com.uiui.aios.adapter.AlarmAdapter;
|
|||||||
import com.uiui.aios.alarm.AlarmUtils;
|
import com.uiui.aios.alarm.AlarmUtils;
|
||||||
import com.uiui.aios.base.BaseActivity;
|
import com.uiui.aios.base.BaseActivity;
|
||||||
import com.uiui.aios.bean.AlarmClockData;
|
import com.uiui.aios.bean.AlarmClockData;
|
||||||
|
import com.uiui.aios.tpush.MessageReceiver;
|
||||||
import com.uiui.aios.utils.ToastUtil;
|
import com.uiui.aios.utils.ToastUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -20,6 +26,7 @@ import butterknife.ButterKnife;
|
|||||||
import cn.jzvd.Jzvd;
|
import cn.jzvd.Jzvd;
|
||||||
|
|
||||||
public class AlarmClockActivity extends BaseActivity implements AlarmClockContact.ClockView {
|
public class AlarmClockActivity extends BaseActivity implements AlarmClockContact.ClockView {
|
||||||
|
private static final String TAG = AlarmClockActivity.class.getSimpleName();
|
||||||
|
|
||||||
@BindView(R.id.recyclerView)
|
@BindView(R.id.recyclerView)
|
||||||
RecyclerView recyclerView;
|
RecyclerView recyclerView;
|
||||||
@@ -55,12 +62,12 @@ public class AlarmClockActivity extends BaseActivity implements AlarmClockContac
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initData() {
|
public void initData() {
|
||||||
|
registerAlarmClockReceiver();
|
||||||
mPresenter.getAlarmClock();
|
mPresenter.getAlarmClock();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showAlarmClock(List<AlarmClockData> alarmClockData) {
|
public void showAlarmClock(List<AlarmClockData> alarmClockData) {
|
||||||
AlarmUtils.getInstance().setAlarmClockData(alarmClockData);
|
|
||||||
mAlarmAdapter.setAlarmClockData(alarmClockData);
|
mAlarmAdapter.setAlarmClockData(alarmClockData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,5 +85,32 @@ public class AlarmClockActivity extends BaseActivity implements AlarmClockContac
|
|||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
Jzvd.releaseAllVideos();
|
Jzvd.releaseAllVideos();
|
||||||
|
if (mAlarmClockReceiver != null) {
|
||||||
|
unregisterReceiver(mAlarmClockReceiver);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerAlarmClockReceiver() {
|
||||||
|
if (null == mAlarmClockReceiver) {
|
||||||
|
mAlarmClockReceiver = new AlarmClockReceiver();
|
||||||
|
}
|
||||||
|
IntentFilter filter = new IntentFilter();
|
||||||
|
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||||
|
filter.addAction(MessageReceiver.SET_ALARMCLOCK);
|
||||||
|
registerReceiver(mAlarmClockReceiver, filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private AlarmClockReceiver mAlarmClockReceiver;
|
||||||
|
|
||||||
|
private class AlarmClockReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
String action = intent.getAction();
|
||||||
|
Log.e(TAG, "onReceive: " + action);
|
||||||
|
if (MessageReceiver.SET_ALARMCLOCK.equals(action)) {
|
||||||
|
mPresenter.getAlarmClock();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -584,7 +584,9 @@ public class AlarmUtils {
|
|||||||
timestamp += (8 - day_of_week) * AlarmManager.INTERVAL_DAY;
|
timestamp += (8 - day_of_week) * AlarmManager.INTERVAL_DAY;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
timestamp += (6 - day_of_week) * AlarmManager.INTERVAL_DAY;
|
if (System.currentTimeMillis() > timestamp) {
|
||||||
|
timestamp += AlarmManager.INTERVAL_DAY;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Intent intent = new Intent(action);
|
Intent intent = new Intent(action);
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ public class BaseFragmentPagerAdapter extends FragmentPagerAdapter {
|
|||||||
private void removeFragmentInternal(Fragment fragment) {
|
private void removeFragmentInternal(Fragment fragment) {
|
||||||
FragmentTransaction transaction = mFragmentManager.beginTransaction();
|
FragmentTransaction transaction = mFragmentManager.beginTransaction();
|
||||||
transaction.remove(fragment);
|
transaction.remove(fragment);
|
||||||
transaction.commitNow();
|
transaction.commitAllowingStateLoss();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import androidx.fragment.app.Fragment;
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import android.os.Handler;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -59,6 +60,7 @@ import com.uiui.aios.dialog.SingleDialog;
|
|||||||
import com.uiui.aios.manager.AmapManager;
|
import com.uiui.aios.manager.AmapManager;
|
||||||
import com.uiui.aios.alarm.AlarmUtils;
|
import com.uiui.aios.alarm.AlarmUtils;
|
||||||
import com.uiui.aios.network.NetInterfaceManager;
|
import com.uiui.aios.network.NetInterfaceManager;
|
||||||
|
import com.uiui.aios.tpush.MessageReceiver;
|
||||||
import com.uiui.aios.utils.ApkUtils;
|
import com.uiui.aios.utils.ApkUtils;
|
||||||
import com.uiui.aios.utils.AppUtil;
|
import com.uiui.aios.utils.AppUtil;
|
||||||
import com.uiui.aios.utils.NetStateUtils;
|
import com.uiui.aios.utils.NetStateUtils;
|
||||||
@@ -191,8 +193,6 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
mParam2 = getArguments().getString(ARG_PARAM2);
|
mParam2 = getArguments().getString(ARG_PARAM2);
|
||||||
}
|
}
|
||||||
mmkv = MMKV.defaultMMKV();
|
mmkv = MMKV.defaultMMKV();
|
||||||
registerBatteryReceiver();
|
|
||||||
getActivity().registerReceiver(mbatteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getConnectWifiSsid() {
|
private String getConnectWifiSsid() {
|
||||||
WifiManager wifiManager = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
|
WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
|
||||||
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
||||||
Log.d("wifiInfo", wifiInfo.toString());
|
Log.d("wifiInfo", wifiInfo.toString());
|
||||||
Log.d("SSID", wifiInfo.getSSID());
|
Log.d("SSID", wifiInfo.getSSID());
|
||||||
@@ -224,11 +224,39 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean isWifiConnect() {
|
public boolean isWifiConnect() {
|
||||||
ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
|
ConnectivityManager connManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo mWifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
|
NetworkInfo mWifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
|
||||||
return mWifiInfo.isConnected();
|
return mWifiInfo.isConnected();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerAlarmClockReceiver() {
|
||||||
|
if (null == mAlarmClockReceiver) {
|
||||||
|
mAlarmClockReceiver = new AlarmClockReceiver();
|
||||||
|
}
|
||||||
|
IntentFilter filter = new IntentFilter();
|
||||||
|
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||||
|
filter.addAction(MessageReceiver.SET_ALARMCLOCK);
|
||||||
|
mContext.registerReceiver(mAlarmClockReceiver, filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private AlarmClockReceiver mAlarmClockReceiver;
|
||||||
|
|
||||||
|
private class AlarmClockReceiver extends BroadcastReceiver {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
String action = intent.getAction();
|
||||||
|
Log.e(TAG, "onReceive: " + action);
|
||||||
|
if (MessageReceiver.SET_ALARMCLOCK.equals(action)) {
|
||||||
|
Handler.getMain().postDelayed(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
getAlarmClock();
|
||||||
|
}
|
||||||
|
}, 3456);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void registerBatteryReceiver() {
|
private void registerBatteryReceiver() {
|
||||||
if (null == batteryReceiver) {
|
if (null == batteryReceiver) {
|
||||||
batteryReceiver = new BatteryReceiver();
|
batteryReceiver = new BatteryReceiver();
|
||||||
@@ -240,10 +268,10 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
filter.addAction(Intent.ACTION_BATTERY_OKAY);
|
filter.addAction(Intent.ACTION_BATTERY_OKAY);
|
||||||
filter.addAction(Intent.ACTION_POWER_CONNECTED);
|
filter.addAction(Intent.ACTION_POWER_CONNECTED);
|
||||||
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
|
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
|
||||||
getActivity().registerReceiver(batteryReceiver, filter);
|
mContext.registerReceiver(batteryReceiver, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
BatteryReceiver batteryReceiver;
|
private BatteryReceiver batteryReceiver;
|
||||||
|
|
||||||
private class BatteryReceiver extends BroadcastReceiver {
|
private class BatteryReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
@@ -302,8 +330,12 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initView() {
|
private void initView() {
|
||||||
Log.e(TAG, "initView: " + Utils.getBatteryLevel(getActivity()));
|
Log.e(TAG, "initView: " + Utils.getBatteryLevel(mContext));
|
||||||
// tv_battery.setText(Utils.getBatteryLevel(getActivity()) + "%");
|
registerBatteryReceiver();
|
||||||
|
registerAlarmClockReceiver();
|
||||||
|
mContext.registerReceiver(mbatteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||||
|
|
||||||
|
// tv_battery.setText(Utils.getBatteryLevel(mContext) + "%");
|
||||||
// cpv.setOnClickListener(new View.OnClickListener() {
|
// cpv.setOnClickListener(new View.OnClickListener() {
|
||||||
// @Override
|
// @Override
|
||||||
// public void onClick(View v) {
|
// public void onClick(View v) {
|
||||||
@@ -313,7 +345,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
// cl_alarm.setOnClickListener(new View.OnClickListener() {
|
// cl_alarm.setOnClickListener(new View.OnClickListener() {
|
||||||
// @Override
|
// @Override
|
||||||
// public void onClick(View v) {
|
// public void onClick(View v) {
|
||||||
// ApkUtils.openPackage(getActivity(), "com.alarmclock.uiui");
|
// ApkUtils.openPackage(mContext, "com.alarmclock.uiui");
|
||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
cl_note.setOnClickListener(new View.OnClickListener() {
|
cl_note.setOnClickListener(new View.OnClickListener() {
|
||||||
@@ -335,7 +367,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
getAlarm();
|
getAlarm();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
rv_noti.setLayoutManager(new LinearLayoutManager(getActivity()));
|
rv_noti.setLayoutManager(new LinearLayoutManager(mContext));
|
||||||
rv_noti.setAdapter(notificationAdapter);
|
rv_noti.setAdapter(notificationAdapter);
|
||||||
if (isWifiConnect()) {
|
if (isWifiConnect()) {
|
||||||
// wifi_ssid.setText(getConnectWifiSsid());
|
// wifi_ssid.setText(getConnectWifiSsid());
|
||||||
@@ -343,10 +375,10 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
// wifi_ssid.setText("WiFi未连接");
|
// wifi_ssid.setText("WiFi未连接");
|
||||||
}
|
}
|
||||||
// alarmClockAdapter = new AlarmClockAdapter();
|
// alarmClockAdapter = new AlarmClockAdapter();
|
||||||
// rv_clock.setLayoutManager(new LinearLayoutManager(getActivity()));
|
// rv_clock.setLayoutManager(new LinearLayoutManager(mContext));
|
||||||
// rv_clock.setAdapter(alarmClockAdapter);
|
// rv_clock.setAdapter(alarmClockAdapter);
|
||||||
sosNnmberAdapter = new SOSNnmberAdapter();
|
sosNnmberAdapter = new SOSNnmberAdapter();
|
||||||
rv_sos.setLayoutManager(new LinearLayoutManager(getActivity()));
|
rv_sos.setLayoutManager(new LinearLayoutManager(mContext));
|
||||||
rv_sos.setAdapter(sosNnmberAdapter);
|
rv_sos.setAdapter(sosNnmberAdapter);
|
||||||
cl_soso.setOnClickListener(new View.OnClickListener() {
|
cl_soso.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -357,7 +389,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
cl_weather.setOnClickListener(new View.OnClickListener() {
|
cl_weather.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
startActivity(new Intent(getActivity(), WeatherActivity.class));
|
startActivity(new Intent(mContext, WeatherActivity.class));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// cl_battery.setOnClickListener(new View.OnClickListener() {
|
// cl_battery.setOnClickListener(new View.OnClickListener() {
|
||||||
@@ -375,13 +407,13 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
getHealthCode();
|
getHealthCode();
|
||||||
// SchemeUtils.openScheme(getActivity(), SchemeUtils.SCHEME_TONGUE);
|
// SchemeUtils.openScheme(mContext, SchemeUtils.SCHEME_TONGUE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
mClTongue.setOnClickListener(new View.OnClickListener() {
|
mClTongue.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
// startActivity(new Intent(getActivity(), CodeActivity.class));
|
// startActivity(new Intent(mContext, CodeActivity.class));
|
||||||
// startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接进入手机中的wifi网络设置界面
|
// startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接进入手机中的wifi网络设置界面
|
||||||
openScheme(SchemeUtils.SCHEME_TONGUE);
|
openScheme(SchemeUtils.SCHEME_TONGUE);
|
||||||
}
|
}
|
||||||
@@ -389,15 +421,15 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
mClFace.setOnClickListener(new View.OnClickListener() {
|
mClFace.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
// startActivity(new Intent(getActivity(), CodeActivity.class));
|
// startActivity(new Intent(mContext, CodeActivity.class));
|
||||||
openScheme(SchemeUtils.SCHEME_FACE);
|
openScheme(SchemeUtils.SCHEME_FACE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
mClHand.setOnClickListener(new View.OnClickListener() {
|
mClHand.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
// startActivity(new Intent(getActivity(), CodeActivity.class));
|
// startActivity(new Intent(mContext, CodeActivity.class));
|
||||||
// getActivity().startActivity(new Intent(getActivity(), APPListActivity.class));
|
// mContext.startActivity(new Intent(mContext, APPListActivity.class));
|
||||||
openScheme(SchemeUtils.SCHEME_HAND);
|
openScheme(SchemeUtils.SCHEME_HAND);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -410,7 +442,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
NetInterfaceManager.getInstance().getSystemSettings(new NetInterfaceManager.SosNumberCallback() {
|
NetInterfaceManager.getInstance().getSystemSettings(new NetInterfaceManager.SosNumberCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void setSosNumber(String json) {
|
public void setSosNumber(String json) {
|
||||||
Intent intent = new Intent(getActivity(), EmergencyActivity.class);
|
Intent intent = new Intent(mContext, EmergencyActivity.class);
|
||||||
// intent.putExtra("setting_sos", phone);
|
// intent.putExtra("setting_sos", phone);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
mContext.startActivity(intent);
|
mContext.startActivity(intent);
|
||||||
@@ -472,7 +504,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
initAmap();
|
initAmap();
|
||||||
getAlarmClock();
|
// getAlarmClock();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -520,7 +552,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
dialog.setMessage("绑定手机才能使用");
|
dialog.setMessage("绑定手机才能使用");
|
||||||
dialog.show();
|
dialog.show();
|
||||||
} else {
|
} else {
|
||||||
SchemeUtils.openScheme(getActivity(), uri);
|
SchemeUtils.openScheme(mContext, uri);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -664,7 +696,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
* @param unit (选填)单位选择,公制(m)或英制(i),默认为公制单位
|
* @param unit (选填)单位选择,公制(m)或英制(i),默认为公制单位
|
||||||
* @param listener 网络访问结果回调
|
* @param listener 网络访问结果回调
|
||||||
*/
|
*/
|
||||||
QWeather.getWeatherNow(getActivity(), location, Lang.ZH_HANS, Unit.METRIC, new QWeather.OnResultWeatherNowListener() {
|
QWeather.getWeatherNow(mContext, location, Lang.ZH_HANS, Unit.METRIC, new QWeather.OnResultWeatherNowListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
Log.e("getWeatherNow", "onError: " + e);
|
Log.e("getWeatherNow", "onError: " + e);
|
||||||
@@ -677,8 +709,8 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
if (Code.OK == weatherBean.getCode()) {
|
if (Code.OK == weatherBean.getCode()) {
|
||||||
WeatherNowBean.NowBaseBean now = weatherBean.getNow();
|
WeatherNowBean.NowBaseBean now = weatherBean.getNow();
|
||||||
// String imageName = "he" + now.getIcon();
|
// String imageName = "he" + now.getIcon();
|
||||||
// int resId = getResources().getIdentifier(imageName, "drawable", getActivity().getPackageName());
|
// int resId = getResources().getIdentifier(imageName, "drawable", mContext.getPackageName());
|
||||||
// iv_pic.setImageDrawable(getActivity().getDrawable(resId));
|
// iv_pic.setImageDrawable(mContext.getDrawable(resId));
|
||||||
tv_temp.setText(now.getTemp() + "℃");
|
tv_temp.setText(now.getTemp() + "℃");
|
||||||
} else {
|
} else {
|
||||||
//在此查看返回数据失败的原因
|
//在此查看返回数据失败的原因
|
||||||
@@ -688,7 +720,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
QWeather.getWeather24Hourly(getActivity(), location, new QWeather.OnResultWeatherHourlyListener() {
|
QWeather.getWeather24Hourly(mContext, location, new QWeather.OnResultWeatherHourlyListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable throwable) {
|
public void onError(Throwable throwable) {
|
||||||
Log.e("getWeather24Hourly", "onError: " + throwable);
|
Log.e("getWeather24Hourly", "onError: " + throwable);
|
||||||
@@ -704,12 +736,12 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
String imageName = "he" + now.getIcon();
|
String imageName = "he" + now.getIcon();
|
||||||
Log.e(TAG, "onSuccess: " + imageName);
|
Log.e(TAG, "onSuccess: " + imageName);
|
||||||
if (isAdded()) {
|
if (isAdded()) {
|
||||||
int resId = getResources().getIdentifier(imageName, "drawable", getActivity().getPackageName());
|
int resId = getResources().getIdentifier(imageName, "drawable", mContext.getPackageName());
|
||||||
Log.e(TAG, "onSuccess: " + resId);
|
Log.e(TAG, "onSuccess: " + resId);
|
||||||
if (resId == 0) {
|
if (resId == 0) {
|
||||||
iv_pic.setImageDrawable(getActivity().getDrawable(R.drawable.he100));
|
iv_pic.setImageDrawable(mContext.getDrawable(R.drawable.he100));
|
||||||
} else {
|
} else {
|
||||||
iv_pic.setImageDrawable(getActivity().getDrawable(resId));
|
iv_pic.setImageDrawable(mContext.getDrawable(resId));
|
||||||
}
|
}
|
||||||
tv_temp.setText(now.getTemp() + "℃");
|
tv_temp.setText(now.getTemp() + "℃");
|
||||||
}
|
}
|
||||||
@@ -764,10 +796,13 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
|
|||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
NetworkUtils.unregisterNetworkStatusChangedListener(this);
|
NetworkUtils.unregisterNetworkStatusChangedListener(this);
|
||||||
if (batteryReceiver != null) {
|
if (batteryReceiver != null) {
|
||||||
getActivity().unregisterReceiver(batteryReceiver);
|
mContext.unregisterReceiver(batteryReceiver);
|
||||||
}
|
}
|
||||||
if (mbatteryReceiver != null) {
|
if (mbatteryReceiver != null) {
|
||||||
getActivity().unregisterReceiver(mbatteryReceiver);
|
mContext.unregisterReceiver(mbatteryReceiver);
|
||||||
|
}
|
||||||
|
if (mAlarmClockReceiver != null) {
|
||||||
|
mContext.unregisterReceiver(mAlarmClockReceiver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -262,16 +262,19 @@ public class SecondFragment extends BaseFragment implements NetworkUtils.OnNetwo
|
|||||||
|
|
||||||
private void setActivity(ActivityBean activity) {
|
private void setActivity(ActivityBean activity) {
|
||||||
Glide.with(iv_avatar_a).load(activity.getAvatar()).error(getResources().getDrawable(R.drawable.default_head)).into(iv_avatar_a);
|
Glide.with(iv_avatar_a).load(activity.getAvatar()).error(getResources().getDrawable(R.drawable.default_head)).into(iv_avatar_a);
|
||||||
tv_title_a.setText(activity.getTitle());
|
tv_title_a.setText(activity.getName());
|
||||||
tc_joined_num_a.setText(activity.getJoin_num() + "人参加");
|
tc_joined_num_a.setText(activity.getJoin_num() + "人参加");
|
||||||
tv_time_a.setText(getTime(activity.getActivity_time()));
|
tv_time_a.setText(getTime(activity.getAdd_time()));
|
||||||
tv_address_a.setText(activity.getAddress());
|
tv_address_a.setText(activity.getAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getTime(long second) {
|
private String getTime(long second) {
|
||||||
|
long ms = second * 1000L;
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm");
|
SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm");
|
||||||
Date date = new Date(second * 1000);
|
Date date = new Date(ms);
|
||||||
return sdf.format(date);
|
String time = sdf.format(date);
|
||||||
|
Log.e(TAG, "getTime: " + time);
|
||||||
|
return time;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initView() {
|
private void initView() {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.tencent.mmkv.MMKV;
|
|||||||
import com.trello.rxlifecycle4.RxLifecycle;
|
import com.trello.rxlifecycle4.RxLifecycle;
|
||||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||||
import com.trello.rxlifecycle4.android.FragmentEvent;
|
import com.trello.rxlifecycle4.android.FragmentEvent;
|
||||||
|
import com.uiui.aios.alarm.AlarmUtils;
|
||||||
import com.uiui.aios.bean.ActivityBean;
|
import com.uiui.aios.bean.ActivityBean;
|
||||||
import com.uiui.aios.bean.AlarmClockData;
|
import com.uiui.aios.bean.AlarmClockData;
|
||||||
import com.uiui.aios.bean.ArticleInfo;
|
import com.uiui.aios.bean.ArticleInfo;
|
||||||
@@ -713,12 +714,17 @@ public class NetInterfaceManager {
|
|||||||
if (listBaseResponse.code == 200) {
|
if (listBaseResponse.code == 200) {
|
||||||
List<AlarmClockData> alarmClockData = listBaseResponse.data;
|
List<AlarmClockData> alarmClockData = listBaseResponse.data;
|
||||||
if (alarmClockData != null && alarmClockData.size() != 0) {
|
if (alarmClockData != null && alarmClockData.size() != 0) {
|
||||||
|
AlarmUtils.getInstance().setAlarmClockData(alarmClockData);
|
||||||
if (callback != null) callback.setAlarmClock(alarmClockData);
|
if (callback != null) callback.setAlarmClock(alarmClockData);
|
||||||
} else {
|
} else {
|
||||||
|
AlarmUtils.getInstance().deleteAllAlarmClock();
|
||||||
|
AlarmUtils.getInstance().setAlarmClockData(null);
|
||||||
if (callback != null) callback.setAlarmClockEmpty();
|
if (callback != null) callback.setAlarmClockEmpty();
|
||||||
}
|
}
|
||||||
mCacheHelper.put(URLAddress.GET_ALARM_CLOCK, GsonUtils.toJsonString(alarmClockData));
|
mCacheHelper.put(URLAddress.GET_ALARM_CLOCK, GsonUtils.toJsonString(alarmClockData));
|
||||||
} else {
|
} else {
|
||||||
|
AlarmUtils.getInstance().deleteAllAlarmClock();
|
||||||
|
AlarmUtils.getInstance().setAlarmClockData(null);
|
||||||
mCacheHelper.put(URLAddress.GET_ALARM_CLOCK, "");
|
mCacheHelper.put(URLAddress.GET_ALARM_CLOCK, "");
|
||||||
if (callback != null) callback.setAlarmClockEmpty();
|
if (callback != null) callback.setAlarmClockEmpty();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,18 +60,17 @@ public class MainSPresenter implements MainSContact.Presenter {
|
|||||||
NetInterfaceManager.getInstance().getAlarmClock(true, getLifecycle(), new NetInterfaceManager.AlarmClockCallback() {
|
NetInterfaceManager.getInstance().getAlarmClock(true, getLifecycle(), new NetInterfaceManager.AlarmClockCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void setAlarmClock(List<AlarmClockData> alarmClockList) {
|
public void setAlarmClock(List<AlarmClockData> alarmClockList) {
|
||||||
AlarmUtils.getInstance().setAlarmClockData(alarmClockList);
|
Log.e(TAG, "setAlarmClock: " + alarmClockList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setAlarmClockEmpty() {
|
public void setAlarmClockEmpty() {
|
||||||
AlarmUtils.getInstance().deleteAllAlarmClock();
|
Log.e(TAG, "setAlarmClock: ");
|
||||||
AlarmUtils.getInstance().setAlarmClockData(null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError() {
|
public void onError() {
|
||||||
|
Log.e(TAG, "setAlarmClock: ");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,10 @@ import com.tencent.android.tpush.XGPushClickedResult;
|
|||||||
import com.tencent.android.tpush.XGPushRegisterResult;
|
import com.tencent.android.tpush.XGPushRegisterResult;
|
||||||
import com.tencent.android.tpush.XGPushShowedResult;
|
import com.tencent.android.tpush.XGPushShowedResult;
|
||||||
import com.tencent.android.tpush.XGPushTextMessage;
|
import com.tencent.android.tpush.XGPushTextMessage;
|
||||||
|
import com.uiui.aios.service.main.MainService;
|
||||||
import com.uiui.aios.tpush.common.NotificationService;
|
import com.uiui.aios.tpush.common.NotificationService;
|
||||||
import com.uiui.aios.tpush.po.XGNotification;
|
import com.uiui.aios.tpush.po.XGNotification;
|
||||||
|
import com.uiui.aios.utils.ToastUtil;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
@@ -29,6 +31,7 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
public static final String TEST_ACTION = "com.qq.xgdemo.activity.TEST_ACTION";
|
public static final String TEST_ACTION = "com.qq.xgdemo.activity.TEST_ACTION";
|
||||||
public static final String LogTag = "xg.test";
|
public static final String LogTag = "xg.test";
|
||||||
|
|
||||||
|
public static final String SET_ALARMCLOCK = "zuoyeos.action.change.alarmclaock";
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private ContentResolver mResolver;
|
private ContentResolver mResolver;
|
||||||
@@ -286,9 +289,8 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
// Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
|
// Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private int changeNum(int paramInt) {
|
//闹钟
|
||||||
return paramInt == 0 ? 1 : 0;
|
private static final String JIGUANG_ALARM_CLOCK = "57";
|
||||||
}
|
|
||||||
|
|
||||||
private void processCustomMessage(Context context, XGPushTextMessage message) {
|
private void processCustomMessage(Context context, XGPushTextMessage message) {
|
||||||
if (context == null || message == null) {
|
if (context == null || message == null) {
|
||||||
@@ -305,9 +307,12 @@ public class MessageReceiver extends XGPushBaseReceiver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (title) {
|
switch (title) {
|
||||||
|
case JIGUANG_ALARM_CLOCK:
|
||||||
|
ToastUtil.betaShow("收到推送消息: 设置闹钟");
|
||||||
|
Intent intent = new Intent(SET_ALARMCLOCK);
|
||||||
|
mContext.sendBroadcast(intent);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ public class ApkUtils {
|
|||||||
this.add("com.android.calendar");
|
this.add("com.android.calendar");
|
||||||
this.add("com.android.uiuios");
|
this.add("com.android.uiuios");
|
||||||
this.add("com.uiui.os");
|
this.add("com.uiui.os");
|
||||||
|
this.add("com.uiui.health");
|
||||||
}};
|
}};
|
||||||
private static HashSet<String> showPackageName = new HashSet<String>() {{
|
private static HashSet<String> showPackageName = new HashSet<String>() {{
|
||||||
this.add("com.android.dialer");
|
this.add("com.android.dialer");
|
||||||
|
|||||||
78
app/src/main/java/com/uiui/aios/utils/GlideLoadUtils.java
Normal file
78
app/src/main/java/com/uiui/aios/utils/GlideLoadUtils.java
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
package com.uiui.aios.utils;
|
||||||
|
|
||||||
|
import android.annotation.TargetApi;
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Build;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import com.bumptech.glide.Glide;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Glide 加载 简单判空封装 防止异步加载数据时调用Glide 抛出异常
|
||||||
|
* Created by Li_Xavier on 2017/6/20 0020.
|
||||||
|
*/
|
||||||
|
public class GlideLoadUtils {
|
||||||
|
private String TAG = "ImageLoader";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 借助内部类 实现线程安全的单例模式
|
||||||
|
* 属于懒汉式单例,因为Java机制规定,内部类SingletonHolder只有在getInstance()
|
||||||
|
* 方法第一次调用的时候才会被加载(实现了lazy),而且其加载过程是线程安全的。
|
||||||
|
* 内部类加载的时候实例化一次instance。
|
||||||
|
*/
|
||||||
|
public GlideLoadUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class GlideLoadUtilsHolder {
|
||||||
|
private final static GlideLoadUtils INSTANCE = new GlideLoadUtils();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GlideLoadUtils getInstance() {
|
||||||
|
return GlideLoadUtilsHolder.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Glide 加载 简单判空封装 防止异步加载数据时调用Glide 抛出异常
|
||||||
|
*
|
||||||
|
* @param context
|
||||||
|
* @param url 加载图片的url地址 String
|
||||||
|
* @param imageView 加载图片的ImageView 控件
|
||||||
|
* @param default_image 图片展示错误的本地图片 id
|
||||||
|
*/
|
||||||
|
public void glideLoad(Context context, String url, ImageView imageView, int default_image) {
|
||||||
|
if (context != null) {
|
||||||
|
Glide.with(context).load(url).centerCrop().error(default_image).into(imageView);
|
||||||
|
} else {
|
||||||
|
Log.i(TAG, "Picture loading failed,context is null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||||
|
public void glideLoad(Activity activity, String url, ImageView imageView, int default_image) {
|
||||||
|
if (!activity.isDestroyed()) {
|
||||||
|
Glide.with(activity).load(url).centerCrop().error(default_image).into(imageView);
|
||||||
|
} else {
|
||||||
|
Log.i(TAG, "Picture loading failed,activity is Destroyed");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void glideLoad(Fragment fragment, String url, ImageView imageView, int default_image) {
|
||||||
|
if (fragment != null && fragment.getActivity() != null) {
|
||||||
|
Glide.with(fragment).load(url).centerCrop().error(default_image).into(imageView);
|
||||||
|
} else {
|
||||||
|
Log.i(TAG, "Picture loading failed,fragment is null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void glideLoad(android.app.Fragment fragment, String url, ImageView imageView, int default_image) {
|
||||||
|
if (fragment != null && fragment.getActivity() != null) {
|
||||||
|
Glide.with(fragment).load(url).centerCrop().error(default_image).into(imageView);
|
||||||
|
} else {
|
||||||
|
Log.i(TAG, "Picture loading failed,android.app.Fragment is null");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
119
app/src/main/java/com/uiui/aios/utils/WakeUpUtils.java
Normal file
119
app/src/main/java/com/uiui/aios/utils/WakeUpUtils.java
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
package com.uiui.aios.utils;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.app.KeyguardManager;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Build;
|
||||||
|
import android.os.PowerManager;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.Window;
|
||||||
|
import android.view.WindowManager;
|
||||||
|
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
|
public class WakeUpUtils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 唤醒手机屏幕并解锁
|
||||||
|
*/
|
||||||
|
public static void wakeUpAndUnlock(Activity activity) {
|
||||||
|
// 获取电源管理器对象
|
||||||
|
PowerManager pm = (PowerManager) activity.getApplicationContext()
|
||||||
|
.getSystemService(Context.POWER_SERVICE);
|
||||||
|
boolean screenOn = pm.isScreenOn();
|
||||||
|
Log.d("WakeScreen0", "screenOn: " + screenOn);
|
||||||
|
if (!screenOn) {
|
||||||
|
// 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
|
||||||
|
@SuppressLint("InvalidWakeLockTag") PowerManager.WakeLock wl = pm.newWakeLock(
|
||||||
|
PowerManager.ACQUIRE_CAUSES_WAKEUP |
|
||||||
|
PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");
|
||||||
|
wl.acquire(10000); // 点亮屏幕
|
||||||
|
wl.release(); // 释放
|
||||||
|
}
|
||||||
|
// 屏幕解锁
|
||||||
|
KeyguardManager keyguardManager = (KeyguardManager) activity.getApplicationContext()
|
||||||
|
.getSystemService(Context.KEYGUARD_SERVICE);
|
||||||
|
KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("unLock");
|
||||||
|
// 屏幕锁定
|
||||||
|
// keyguardLock.reenableKeyguard();
|
||||||
|
keyguardLock.disableKeyguard(); // 解锁
|
||||||
|
unLockScreen(activity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void unLockScreen(Activity activity) {
|
||||||
|
final Window win = activity.getWindow();
|
||||||
|
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
|
||||||
|
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
|
||||||
|
|
||||||
|
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
|
||||||
|
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
|
||||||
|
| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 唤醒手机屏幕并解锁
|
||||||
|
*/
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||||
|
public static void wakeUpAndUnlockScreen(Activity activity) {
|
||||||
|
|
||||||
|
Window win = activity.getWindow();
|
||||||
|
win.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
|
||||||
|
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
|
||||||
|
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
|
||||||
|
|
||||||
|
PowerManager pm = (PowerManager) activity.getSystemService(Context.POWER_SERVICE);
|
||||||
|
@SuppressLint("InvalidWakeLockTag")
|
||||||
|
PowerManager.WakeLock wakelock = pm.newWakeLock(
|
||||||
|
PowerManager.FULL_WAKE_LOCK
|
||||||
|
| PowerManager.ACQUIRE_CAUSES_WAKEUP, "xx");
|
||||||
|
wakelock.acquire();
|
||||||
|
wakelock.release();
|
||||||
|
|
||||||
|
KeyguardManager keyguardManager = (KeyguardManager) activity.getApplicationContext()
|
||||||
|
.getSystemService(Context.KEYGUARD_SERVICE);
|
||||||
|
|
||||||
|
if (activity == null) return;
|
||||||
|
keyguardManager.requestDismissKeyguard(activity, new KeyguardManager.KeyguardDismissCallback() {
|
||||||
|
@Override
|
||||||
|
public void onDismissError() {
|
||||||
|
super.onDismissError();
|
||||||
|
Log.d("xxx-->", "1 onDismissError");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDismissSucceeded() {
|
||||||
|
super.onDismissSucceeded();
|
||||||
|
Log.d("xxx-->", "1 onDismissSucceeded");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDismissCancelled() {
|
||||||
|
super.onDismissCancelled();
|
||||||
|
Log.d("xxx-->", "1 onDismissCancelled");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (activity == null) return;
|
||||||
|
keyguardManager.requestDismissKeyguard(activity, new KeyguardManager.KeyguardDismissCallback() {
|
||||||
|
@Override
|
||||||
|
public void onDismissError() {
|
||||||
|
super.onDismissError();
|
||||||
|
Log.d("xxx-->", "2 onDismissError");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDismissSucceeded() {
|
||||||
|
super.onDismissSucceeded();
|
||||||
|
Log.d("xxx-->", "2 onDismissSucceeded");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDismissCancelled() {
|
||||||
|
super.onDismissCancelled();
|
||||||
|
Log.d("xxx-->", "2 onDismissCancelled");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -36,7 +36,6 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
@@ -50,7 +49,5 @@
|
|||||||
android:id="@+id/recyclerView"
|
android:id="@+id/recyclerView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
Reference in New Issue
Block a user