diff --git a/app/src/main/java/cc/niushuai/dididone/ui/base/BaseActivity.java b/app/src/main/java/cc/niushuai/dididone/ui/base/BaseActivity.java new file mode 100644 index 0000000..9de08da --- /dev/null +++ b/app/src/main/java/cc/niushuai/dididone/ui/base/BaseActivity.java @@ -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(); +} \ No newline at end of file diff --git a/app/src/main/java/cc/niushuai/dididone/ui/setting/SettingFragment.java b/app/src/main/java/cc/niushuai/dididone/ui/setting/SettingFragment.java index d67359a..b96c312 100644 --- a/app/src/main/java/cc/niushuai/dididone/ui/setting/SettingFragment.java +++ b/app/src/main/java/cc/niushuai/dididone/ui/setting/SettingFragment.java @@ -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 { 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(); diff --git a/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java b/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java new file mode 100644 index 0000000..935d6ca --- /dev/null +++ b/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java @@ -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; + } +} diff --git a/app/src/main/java/cc/niushuai/dididone/util/ActivityUtil.java b/app/src/main/java/cc/niushuai/dididone/util/ActivityUtil.java new file mode 100644 index 0000000..14432dd --- /dev/null +++ b/app/src/main/java/cc/niushuai/dididone/util/ActivityUtil.java @@ -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 targetActivity) { + + startActivity(sourceActivity, targetActivity, null); + } + + public static void startActivity(Activity sourceActivity, Class targetActivity, String[] keys, String[] values) { + + HashMap 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 targetActivity, Map 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 targetActivity, Map 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 targetActivity, String[] keys, String[] values, Integer requestCode) { + + HashMap map = new HashMap<>(); + for (int i = 0; i < keys.length; i++) { + map.put(keys[i], values[i]); + } + startActivityForResult(sourceActivity, targetActivity, map, requestCode); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/round_text_view_15dp.xml b/app/src/main/res/drawable/round_text_view_15dp.xml new file mode 100644 index 0000000..f0e713b --- /dev/null +++ b/app/src/main/res/drawable/round_text_view_15dp.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_icon.xml b/app/src/main/res/layout/fragment_icon.xml new file mode 100644 index 0000000..dc47a3b --- /dev/null +++ b/app/src/main/res/layout/fragment_icon.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_setting.xml b/app/src/main/res/layout/fragment_setting.xml index a099f62..60721d8 100644 --- a/app/src/main/res/layout/fragment_setting.xml +++ b/app/src/main/res/layout/fragment_setting.xml @@ -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"> - + android:layout_height="match_parent" + android:orientation="vertical" + > + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_setting.xml.bak b/app/src/main/res/layout/fragment_setting.xml.bak new file mode 100644 index 0000000..60721d8 --- /dev/null +++ b/app/src/main/res/layout/fragment_setting.xml.bak @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-land/colors.xml b/app/src/main/res/values-land/colors.xml new file mode 100644 index 0000000..0d2c4cc --- /dev/null +++ b/app/src/main/res/values-land/colors.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-land/ids.xml b/app/src/main/res/values-land/ids.xml new file mode 100644 index 0000000..1e1dcfa --- /dev/null +++ b/app/src/main/res/values-land/ids.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-land/strings.xml b/app/src/main/res/values-land/strings.xml new file mode 100644 index 0000000..c00271e --- /dev/null +++ b/app/src/main/res/values-land/strings.xml @@ -0,0 +1,4 @@ + + + 目标 + \ No newline at end of file diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml new file mode 100644 index 0000000..0d2c4cc --- /dev/null +++ b/app/src/main/res/values-night/colors.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/ids.xml b/app/src/main/res/values-night/ids.xml new file mode 100644 index 0000000..1e1dcfa --- /dev/null +++ b/app/src/main/res/values-night/ids.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/strings.xml b/app/src/main/res/values-night/strings.xml new file mode 100644 index 0000000..c00271e --- /dev/null +++ b/app/src/main/res/values-night/strings.xml @@ -0,0 +1,4 @@ + + + 目标 + \ No newline at end of file diff --git a/app/src/main/res/values-w1240dp/colors.xml b/app/src/main/res/values-w1240dp/colors.xml new file mode 100644 index 0000000..0d2c4cc --- /dev/null +++ b/app/src/main/res/values-w1240dp/colors.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-w1240dp/ids.xml b/app/src/main/res/values-w1240dp/ids.xml new file mode 100644 index 0000000..1e1dcfa --- /dev/null +++ b/app/src/main/res/values-w1240dp/ids.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-w1240dp/strings.xml b/app/src/main/res/values-w1240dp/strings.xml new file mode 100644 index 0000000..c00271e --- /dev/null +++ b/app/src/main/res/values-w1240dp/strings.xml @@ -0,0 +1,4 @@ + + + 目标 + \ No newline at end of file diff --git a/app/src/main/res/values-w600dp/colors.xml b/app/src/main/res/values-w600dp/colors.xml new file mode 100644 index 0000000..0d2c4cc --- /dev/null +++ b/app/src/main/res/values-w600dp/colors.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-w600dp/ids.xml b/app/src/main/res/values-w600dp/ids.xml new file mode 100644 index 0000000..1e1dcfa --- /dev/null +++ b/app/src/main/res/values-w600dp/ids.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-w600dp/strings.xml b/app/src/main/res/values-w600dp/strings.xml new file mode 100644 index 0000000..c00271e --- /dev/null +++ b/app/src/main/res/values-w600dp/strings.xml @@ -0,0 +1,4 @@ + + + 目标 + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c3df63d..5c4aba7 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -11,4 +11,8 @@ #333333 #666666 + #F8FF26 + #B246EB90 + #AAA0A0 + #E8E8E8 \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 74d450c..fbf49cf 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -5,4 +5,12 @@ 8dp 155dp 16dp + 50dp + 10dp + 15dp + 15dp + 32dp + 15dp + 10dp + 10dp \ No newline at end of file diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml index e4c2a8a..1870ba1 100644 --- a/app/src/main/res/values/ids.xml +++ b/app/src/main/res/values/ids.xml @@ -6,4 +6,5 @@ + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc6c707..0ea1ec8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -16,5 +16,9 @@ 日历 统计 设置 + 目标 + App + 图标 + 打卡项 \ No newline at end of file