Browse Source

feat: 🆕 设置页

master
niushuai233 1 year ago
parent
commit
21bc23b0f6
  1. 19
      app/src/main/java/cc/niushuai/dididone/ui/base/BaseActivity.java
  2. 35
      app/src/main/java/cc/niushuai/dididone/ui/setting/SettingFragment.java
  3. 25
      app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java
  4. 57
      app/src/main/java/cc/niushuai/dididone/util/ActivityUtil.java
  5. 10
      app/src/main/res/drawable/round_text_view_15dp.xml
  6. 68
      app/src/main/res/layout/fragment_icon.xml
  7. 79
      app/src/main/res/layout/fragment_setting.xml
  8. 81
      app/src/main/res/layout/fragment_setting.xml.bak
  9. 4
      app/src/main/res/values-land/colors.xml
  10. 4
      app/src/main/res/values-land/ids.xml
  11. 4
      app/src/main/res/values-land/strings.xml
  12. 4
      app/src/main/res/values-night/colors.xml
  13. 4
      app/src/main/res/values-night/ids.xml
  14. 4
      app/src/main/res/values-night/strings.xml
  15. 4
      app/src/main/res/values-w1240dp/colors.xml
  16. 4
      app/src/main/res/values-w1240dp/ids.xml
  17. 4
      app/src/main/res/values-w1240dp/strings.xml
  18. 4
      app/src/main/res/values-w600dp/colors.xml
  19. 4
      app/src/main/res/values-w600dp/ids.xml
  20. 4
      app/src/main/res/values-w600dp/strings.xml
  21. 4
      app/src/main/res/values/colors.xml
  22. 8
      app/src/main/res/values/dimens.xml
  23. 1
      app/src/main/res/values/ids.xml
  24. 4
      app/src/main/res/values/strings.xml

19
app/src/main/java/cc/niushuai/dididone/ui/base/BaseActivity.java

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
package cc.niushuai.dididone.ui.base;
import androidx.appcompat.app.AppCompatActivity;
public abstract class BaseActivity extends AppCompatActivity {
/**
* 初始化方法
*
* @author niushuai
* @date: 2022/10/19 15:54
*/
protected abstract void init();
/**
* 监听器
*/
protected abstract void setListeners();
}

35
app/src/main/java/cc/niushuai/dididone/ui/setting/SettingFragment.java

@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
package cc.niushuai.dididone.ui.setting;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import cc.niushuai.dididone.databinding.FragmentSettingBinding;
import cc.niushuai.dididone.util.ActivityUtil;
public class SettingFragment extends Fragment {
@ -18,17 +18,40 @@ public class SettingFragment extends Fragment { @@ -18,17 +18,40 @@ public class SettingFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
SettingViewModel settingViewModel =
new ViewModelProvider(this).get(SettingViewModel.class);
binding = FragmentSettingBinding.inflate(inflater, container, false);
View root = binding.getRoot();
final TextView textView = binding.textSlideshow;
settingViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
initListeners();
return root;
}
private void initListeners() {
// 打开icon列表activity
iconClickListener();
// 打开新建打卡项activity
projectClickListener();
}
private void iconClickListener() {
binding.sSetAppIcon.setOnClickListener(view -> {
Log.d(getTag(), "sSetAppIcon click");
ActivityUtil.startActivity(getActivity(), IconActivity.class);
Log.d(getTag(), "sSetAppIcon click complete");
});
}
private void projectClickListener() {
binding.sSetAppProject.setOnClickListener(view -> {
Log.d(getTag(), "sSetAppProject click");
});
}
@Override
public void onDestroyView() {
super.onDestroyView();

25
app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
package cc.niushuai.dididone.ui.setting.icon;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import cc.niushuai.dididone.databinding.FragmentIconBinding;
public class IconFragment extends Fragment {
private FragmentIconBinding binding;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = FragmentIconBinding.inflate(inflater, container, false);
View root = binding.getRoot();
return root;
}
}

57
app/src/main/java/cc/niushuai/dididone/util/ActivityUtil.java

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
package cc.niushuai.dididone.util;
import android.app.Activity;
import android.content.Intent;
import java.util.HashMap;
import java.util.Map;
import cc.niushuai.dididone.ui.base.BaseActivity;
public class ActivityUtil {
public static void startActivity(Activity sourceActivity, Class<? extends BaseActivity> targetActivity) {
startActivity(sourceActivity, targetActivity, null);
}
public static void startActivity(Activity sourceActivity, Class<? extends BaseActivity> targetActivity, String[] keys, String[] values) {
HashMap<String, String> map = new HashMap<>();
for (int i = 0; i < keys.length; i++) {
map.put(keys[i], values[i]);
}
startActivity(sourceActivity, targetActivity, map);
}
public static void startActivity(Activity sourceActivity, Class<? extends BaseActivity> targetActivity, Map<String, String> withData) {
Intent intent = new Intent(sourceActivity, targetActivity);
if (null != withData) {
for (String key : withData.keySet()) {
intent.putExtra(key, withData.get(key));
}
}
sourceActivity.startActivity(intent);
}
public static void startActivityForResult(Activity sourceActivity, Class<? extends BaseActivity> targetActivity, Map<String, String> withData, Integer requestCode) {
Intent intent = new Intent(sourceActivity, targetActivity);
if (null != withData) {
for (String key : withData.keySet()) {
intent.putExtra(key, withData.get(key));
}
}
sourceActivity.startActivityForResult(intent, requestCode);
}
public static void startActivityForResult(Activity sourceActivity, Class<? extends BaseActivity> targetActivity, String[] keys, String[] values, Integer requestCode) {
HashMap<String, String> map = new HashMap<>();
for (int i = 0; i < keys.length; i++) {
map.put(keys[i], values[i]);
}
startActivityForResult(sourceActivity, targetActivity, map, requestCode);
}
}

10
app/src/main/res/drawable/round_text_view_15dp.xml

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners
android:radius="15dp" />
<stroke
android:width="1dp"
android:color="@android:color/white" />
</shape>

68
app/src/main/res/layout/fragment_icon.xml

@ -0,0 +1,68 @@ @@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".ui.setting.icon.IconFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="MissingConstraints">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/s_set_project" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

79
app/src/main/res/layout/fragment_setting.xml

@ -4,19 +4,78 @@ @@ -4,19 +4,78 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_light"
tools:context=".ui.setting.SettingFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/text_slideshow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:textAlignment="center"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:text="@string/s_set_app"
android:textAlignment="inherit"
android:textColor="#CE21D873"
android:textSize="30dp" />
<LinearLayout
android:id="@+id/s_set_app_icon"
android:layout_width="match_parent"
android:layout_height="@dimen/s_set_linear_layout_height"
android:layout_marginTop="@dimen/s_set_linear_layout_marginTop"
android:layout_marginLeft="@dimen/s_set_linear_layout_marginLeft"
android:layout_marginRight="@dimen/s_set_linear_layout_marginRight"
android:layout_gravity="center_vertical"
android:background="@drawable/round_text_view_15dp"
>
<ImageView
android:layout_width="@dimen/s_set_linear_image_view_size"
android:layout_height="@dimen/s_set_linear_image_view_size"
android:layout_marginLeft="@dimen/s_set_linear_image_view_marginLeft"
android:layout_marginTop="@dimen/s_set_linear_image_view_marginTop"
app:ico_color="@color/gray"
app:ico_icon="faw_laugh" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/s_set_linear_text_view_marginLeft"
android:gravity="left|center"
android:text="@string/s_set_icon"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/s_set_app_project"
android:layout_width="match_parent"
android:layout_height="@dimen/s_set_linear_layout_height"
android:layout_marginTop="@dimen/s_set_linear_layout_marginTop"
android:layout_marginLeft="@dimen/s_set_linear_layout_marginLeft"
android:layout_marginRight="@dimen/s_set_linear_layout_marginRight"
android:background="@drawable/round_text_view_15dp"
>
<ImageView
android:layout_width="@dimen/s_set_linear_image_view_size"
android:layout_height="@dimen/s_set_linear_image_view_size"
android:layout_marginLeft="@dimen/s_set_linear_image_view_marginLeft"
android:layout_marginTop="@dimen/s_set_linear_image_view_marginTop"
app:ico_color="@color/gray"
app:ico_icon="cmd_cards_variant" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/s_set_linear_text_view_marginLeft"
android:gravity="left|center"
android:text="@string/s_set_project"
android:textSize="20dp" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

81
app/src/main/res/layout/fragment_setting.xml.bak

@ -0,0 +1,81 @@ @@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_light"
tools:context=".ui.setting.SettingFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:text="@string/s_set_app"
android:textAlignment="inherit"
android:textColor="#CE21D873"
android:textSize="30dp" />
<LinearLayout
android:id="@+id/s_set_app_icon"
android:layout_width="match_parent"
android:layout_height="@dimen/s_set_linear_layout_height"
android:layout_marginTop="@dimen/s_set_linear_layout_marginTop"
android:layout_marginLeft="@dimen/s_set_linear_layout_marginLeft"
android:layout_marginRight="@dimen/s_set_linear_layout_marginRight"
android:layout_gravity="center_vertical"
android:background="@drawable/round_text_view_15dp"
>
<ImageView
android:layout_width="@dimen/s_set_linear_image_view_size"
android:layout_height="@dimen/s_set_linear_image_view_size"
android:layout_marginLeft="@dimen/s_set_linear_image_view_marginLeft"
android:layout_marginTop="@dimen/s_set_linear_image_view_marginTop"
app:ico_color="@color/gray"
app:ico_icon="faw_laugh" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/s_set_linear_text_view_marginLeft"
android:gravity="left|center"
android:text="@string/s_set_icon"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/s_set_app_project"
android:layout_width="match_parent"
android:layout_height="@dimen/s_set_linear_layout_height"
android:layout_marginTop="@dimen/s_set_linear_layout_marginTop"
android:layout_marginLeft="@dimen/s_set_linear_layout_marginLeft"
android:layout_marginRight="@dimen/s_set_linear_layout_marginRight"
android:background="@drawable/round_text_view_15dp"
>
<ImageView
android:layout_width="@dimen/s_set_linear_image_view_size"
android:layout_height="@dimen/s_set_linear_image_view_size"
android:layout_marginLeft="@dimen/s_set_linear_image_view_marginLeft"
android:layout_marginTop="@dimen/s_set_linear_image_view_marginTop"
app:ico_color="@color/gray"
app:ico_icon="cmd_cards_variant" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/s_set_linear_text_view_marginLeft"
android:gravity="left|center"
android:text="@string/s_set_project"
android:textSize="20dp" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

4
app/src/main/res/values-land/colors.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

4
app/src/main/res/values-land/ids.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="s_set_target_list" type="id" />
</resources>

4
app/src/main/res/values-land/strings.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="s_set_target">目标</string>
</resources>

4
app/src/main/res/values-night/colors.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

4
app/src/main/res/values-night/ids.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="s_set_target_list" type="id" />
</resources>

4
app/src/main/res/values-night/strings.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="s_set_target">目标</string>
</resources>

4
app/src/main/res/values-w1240dp/colors.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

4
app/src/main/res/values-w1240dp/ids.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="s_set_target_list" type="id" />
</resources>

4
app/src/main/res/values-w1240dp/strings.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="s_set_target">目标</string>
</resources>

4
app/src/main/res/values-w600dp/colors.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

4
app/src/main/res/values-w600dp/ids.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="s_set_target_list" type="id" />
</resources>

4
app/src/main/res/values-w600dp/strings.xml

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="s_set_target">目标</string>
</resources>

4
app/src/main/res/values/colors.xml

@ -11,4 +11,8 @@ @@ -11,4 +11,8 @@
<color name="_333333">#333333</color>
<color name="_666666">#666666</color>
<color name="s_yellow">#F8FF26</color>
<color name="s_cyan">#B246EB90</color>
<color name="gray">#AAA0A0</color>
<color name="gray_light">#E8E8E8</color>
</resources>

8
app/src/main/res/values/dimens.xml

@ -5,4 +5,12 @@ @@ -5,4 +5,12 @@
<dimen name="nav_header_vertical_spacing">8dp</dimen>
<dimen name="nav_header_height">155dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="s_set_linear_layout_height">50dp</dimen>
<dimen name="s_set_linear_layout_marginTop">10dp</dimen>
<dimen name="s_set_linear_layout_marginLeft">15dp</dimen>
<dimen name="s_set_linear_layout_marginRight">15dp</dimen>
<dimen name="s_set_linear_image_view_size">32dp</dimen>
<dimen name="s_set_linear_image_view_marginLeft">15dp</dimen>
<dimen name="s_set_linear_image_view_marginTop">10dp</dimen>
<dimen name="s_set_linear_text_view_marginLeft">10dp</dimen>
</resources>

1
app/src/main/res/values/ids.xml

@ -6,4 +6,5 @@ @@ -6,4 +6,5 @@
<item name="n_nav_setting" type="id"/>
<!--日历页 id 数据集合-->
<item name="c_calendar_check_in_list" type="id" />
<item name="s_set_target_list" type="id" />
</resources>

4
app/src/main/res/values/strings.xml

@ -16,5 +16,9 @@ @@ -16,5 +16,9 @@
<string name="n_menu_name_calendar">日历</string>
<string name="n_menu_name_statistic">统计</string>
<string name="n_menu_name_setting">设置</string>
<string name="s_set_target">目标</string>
<string name="s_set_app">App</string>
<string name="s_set_icon">图标</string>
<string name="s_set_project">打卡项</string>
</resources>
Loading…
Cancel
Save