From 418ccdee18ee1b9a324ea4a8577b245e5bca02e5 Mon Sep 17 00:00:00 2001 From: tongtongstudio Date: Wed, 26 Oct 2022 09:30:28 +0800 Subject: [PATCH] =?UTF-8?q?version:1.2=20fix:=20update:=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E6=8E=A7=E5=88=B6=EF=BC=8C=E7=9B=91=E5=90=AC?= =?UTF-8?q?home=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uiuios/aios/activity/ControlActivity.java | 22 +- .../aios/activity/main/MainActivity.java | 25 +- .../com/uiuios/aios/utils/HomeWatcher.java | 86 ++++ .../res/drawable/control_background_item.xml | 2 +- .../drawable/control_background_item_dis.xml | 12 +- .../res/drawable/seekbar_progress_default.xml | 45 ++ .../activity_control.xml | 124 ++++-- .../main/res/layout-port/activity_control.xml | 389 ++++++++++++++++++ .../main/res/layout-port/fragment_custom.xml | 4 +- 9 files changed, 655 insertions(+), 54 deletions(-) create mode 100644 app/src/main/java/com/uiuios/aios/utils/HomeWatcher.java create mode 100644 app/src/main/res/drawable/seekbar_progress_default.xml rename app/src/main/res/{layout => layout-land}/activity_control.xml (77%) create mode 100644 app/src/main/res/layout-port/activity_control.xml diff --git a/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java b/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java index 39f2351..4b8a9f2 100644 --- a/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java @@ -93,6 +93,8 @@ public class ControlActivity extends AppCompatActivity { ConstraintLayout cl_battery; @BindView(R.id.cl_flashlight) ConstraintLayout cl_flashlight; + @BindView(R.id.cl_location) + ConstraintLayout cl_location; private ContentResolver crv; @@ -518,8 +520,10 @@ public class ControlActivity extends AppCompatActivity { private void getFlashlight() { if (isFlashlightEnabled()) { tv_flashlight_switch.setText("开"); + cl_flashlight.setBackground(getDrawable(R.drawable.control_background_item)); } else { tv_flashlight_switch.setText("关"); + cl_flashlight.setBackground(getDrawable(R.drawable.control_background_item_dis)); } cl_flashlight.setOnClickListener(new View.OnClickListener() { @Override @@ -528,10 +532,12 @@ public class ControlActivity extends AppCompatActivity { Settings.Secure.putInt(crv, Settings.Secure.FLASHLIGHT_ENABLED, 0); sendBroadcast(new Intent(ACTION_FLASHLIGHT_CHANGED)); tv_flashlight_switch.setText("关"); + cl_flashlight.setBackground(getDrawable(R.drawable.control_background_item_dis)); } else { Settings.Secure.putInt(crv, Settings.Secure.FLASHLIGHT_ENABLED, 1); sendBroadcast(new Intent(ACTION_FLASHLIGHT_CHANGED)); tv_flashlight_switch.setText("开"); + cl_flashlight.setBackground(getDrawable(R.drawable.control_background_item)); } } }); @@ -602,6 +608,8 @@ public class ControlActivity extends AppCompatActivity { }); } + private LocationClient locationClient; + private void getLocation() { BDLocation bdLocation = AmapManager.getInstance().getNowMapLocation(); if (bdLocation != null) { @@ -615,7 +623,19 @@ public class ControlActivity extends AppCompatActivity { } else { tv_location.setText("定位失败"); } - LocationClient locationClient = AmapManager.getInstance().getLocationClient(); + startLocation(); + cl_location.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + startLocation(); + } + }); + } + + private void startLocation() { + if (locationClient == null) { + locationClient = AmapManager.getInstance().getLocationClient(); + } locationClient.stop(); locationClient.start(); locationClient.registerLocationListener(new BDAbstractLocationListener() { diff --git a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java index 909840c..d594094 100644 --- a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java +++ b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java @@ -38,6 +38,7 @@ import com.uiuios.aios.fragment.SecondFragment; import com.uiuios.aios.service.NotificationService; import com.uiuios.aios.utils.ApkUtils; import com.uiuios.aios.utils.AppUsedTimeUtils; +import com.uiuios.aios.utils.HomeWatcher; import com.uiuios.aios.utils.ToastUtil; import com.uiuios.aios.view.ScaleCircleNavigator; @@ -52,7 +53,7 @@ import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends BaseActivity implements MainContact.MainView { - private static String TAG = MainActivity.class.getSimpleName(); + private static final String TAG = MainActivity.class.getSimpleName(); private MainPresenter mMainPresenter; @BindView(R.id.viewPager) @@ -71,6 +72,8 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { private int appListIndex = 1; private int defaultCurrent = 0; + private HomeWatcher mHomeWatcher; + @Override public int getLayoutId() { return R.layout.activity_main; @@ -141,6 +144,22 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { if (mFragments.size() > 1) { mViewPager.setCurrentItem(defaultCurrent); } + mHomeWatcher = new HomeWatcher(this); + mHomeWatcher.setOnHomePressedListener(new HomeWatcher.OnHomePressedListener() { + @Override + public void onHomePressed() { + //按了HOME键 + Log.e(TAG, "onHomePressed: "); + + } + + @Override + public void onHomeLongPressed() { + Log.e(TAG, "onHomeLongPressed: "); + //长按HOME键 + } + }); + mHomeWatcher.startWatch(); } @Override @@ -346,6 +365,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { } } + @Override protected void onRestart() { super.onRestart(); @@ -370,6 +390,9 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { if (mNewAppReceiver != null) { unregisterReceiver(mNewAppReceiver); } + if (mHomeWatcher != null) { + mHomeWatcher.stopWatch();// 在销毁时停止监听,不然会报错的。 + } } private void registmNewAppReceiver() { diff --git a/app/src/main/java/com/uiuios/aios/utils/HomeWatcher.java b/app/src/main/java/com/uiuios/aios/utils/HomeWatcher.java new file mode 100644 index 0000000..e2a8b3b --- /dev/null +++ b/app/src/main/java/com/uiuios/aios/utils/HomeWatcher.java @@ -0,0 +1,86 @@ +package com.uiuios.aios.utils; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; + +import com.blankj.utilcode.util.LogUtils; + +public class HomeWatcher{ + + private static final String TAG = "HomeWatcher"; + private Context mContext; + private IntentFilter mFilter; + private OnHomePressedListener mListener; + private InnerRecevier mRecevier; + + // 回调接口 + public interface OnHomePressedListener { + public void onHomePressed(); + public void onHomeLongPressed(); + } + + public HomeWatcher(Context context) { + mContext = context; + mFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); + } + + /** + * 设置监听 + * + * @param listener + */ + public void setOnHomePressedListener(OnHomePressedListener listener) { + mListener = listener; + mRecevier = new InnerRecevier(); + } + + /** + * 开始监听,注册广播 + */ + public void startWatch() { + if (mRecevier != null) { + mContext.registerReceiver(mRecevier, mFilter); + } + } + + /** + * 停止监听,注销广播 + */ + public void stopWatch() { + if (mRecevier != null) { + mContext.unregisterReceiver(mRecevier); + } + } + + /** + * 广播接收者 + */ + class InnerRecevier extends BroadcastReceiver { + final String SYSTEM_DIALOG_REASON_KEY = "reason"; + final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions"; + final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; + final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; + + @Override + public void onReceive(Context context, Intent intent){ + String action = intent.getAction(); + if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) { + String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY); + if (reason != null) { + LogUtils.i("action:" + action + ",reason:" + reason); + if (mListener != null){ + if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)){ + // 短按home键 + mListener.onHomePressed(); + }else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)){ + // 长按home键 + mListener.onHomeLongPressed(); + } + } + } + } + } + } +} diff --git a/app/src/main/res/drawable/control_background_item.xml b/app/src/main/res/drawable/control_background_item.xml index 4768312..eff2f61 100644 --- a/app/src/main/res/drawable/control_background_item.xml +++ b/app/src/main/res/drawable/control_background_item.xml @@ -2,7 +2,7 @@ - + - + - - - - - + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/seekbar_progress_default.xml b/app/src/main/res/drawable/seekbar_progress_default.xml new file mode 100644 index 0000000..b9de7d4 --- /dev/null +++ b/app/src/main/res/drawable/seekbar_progress_default.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_control.xml b/app/src/main/res/layout-land/activity_control.xml similarity index 77% rename from app/src/main/res/layout/activity_control.xml rename to app/src/main/res/layout-land/activity_control.xml index 530eb7b..f7c6ffc 100644 --- a/app/src/main/res/layout/activity_control.xml +++ b/app/src/main/res/layout-land/activity_control.xml @@ -10,7 +10,13 @@ + android:layout_marginTop="@dimen/dp_48" + android:layout_marginBottom="@dimen/dp_48" + android:orientation="horizontal" + 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" /> @@ -77,8 +85,9 @@ + app:layout_constraintTop_toTopOf="parent" /> @@ -125,7 +135,7 @@ android:layout_marginTop="@dimen/dp_8" android:text="字体大小" android:textColor="@color/white" - android:textSize="@dimen/sp_18" + android:textSize="@dimen/sp_16" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -133,17 +143,21 @@ android:id="@+id/tv_font_size" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dp_16" android:text="标准" android:textColor="@color/white" - android:textSize="@dimen/sp_18" + android:textSize="@dimen/sp_12" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/textView21" /> + app:layout_constraintTop_toTopOf="parent" /> @@ -153,18 +167,27 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="@dimen/dp_8" - android:layout_weight="1" - android:background="@drawable/control_background_item"> + android:layout_weight="1"> + android:layout_height="match_parent" + android:background="@null" + android:paddingStart="0dp" + android:paddingEnd="0dp" + android:progressDrawable="@drawable/seekbar_progress_default" + android:thumb="@null" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> @@ -211,8 +234,9 @@ + app:layout_constraintTop_toTopOf="parent" /> @@ -254,8 +279,9 @@ + app:layout_constraintTop_toTopOf="parent" /> @@ -291,18 +318,27 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="@dimen/dp_8" - android:layout_weight="1" - android:background="@drawable/control_background_item"> + android:layout_weight="1"> + android:layout_height="match_parent" + android:background="@null" + android:paddingStart="0dp" + android:paddingEnd="0dp" + android:progressDrawable="@drawable/seekbar_progress_default" + android:thumb="@null" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> @@ -327,6 +363,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-port/fragment_custom.xml b/app/src/main/res/layout-port/fragment_custom.xml index 98bfd31..cdd75e0 100644 --- a/app/src/main/res/layout-port/fragment_custom.xml +++ b/app/src/main/res/layout-port/fragment_custom.xml @@ -524,7 +524,7 @@ android:adjustViewBounds="true" android:scaleType="fitCenter" android:src="@drawable/home_clinical_hand" - app:layout_constraintBottom_toTopOf="@+id/textView8" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -561,7 +561,7 @@ android:adjustViewBounds="true" android:scaleType="fitCenter" android:src="@drawable/home_clinical_hand" - app:layout_constraintBottom_toTopOf="@+id/textView6" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />