diff --git a/app/build.gradle b/app/build.gradle index 5199dfa..657ef9e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.uiui.aios" minSdkVersion 24 targetSdkVersion 29 - versionCode 17 - versionName "2.6" + versionCode 18 + versionName "2.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/uiui/aios/activity/NoticeActivity.java b/app/src/main/java/com/uiui/aios/activity/NoticeActivity.java index eb2d24f..5771f4c 100644 --- a/app/src/main/java/com/uiui/aios/activity/NoticeActivity.java +++ b/app/src/main/java/com/uiui/aios/activity/NoticeActivity.java @@ -73,6 +73,7 @@ public class NoticeActivity extends AppCompatActivity { if (alarmClockData == null) { finish(); } + Log.e(TAG, "onCreate: " + alarmClockData); showData(alarmClockData); } diff --git a/app/src/main/java/com/uiui/aios/adapter/AlarmAdapter.java b/app/src/main/java/com/uiui/aios/adapter/AlarmAdapter.java index 7ac63fb..b95b792 100644 --- a/app/src/main/java/com/uiui/aios/adapter/AlarmAdapter.java +++ b/app/src/main/java/com/uiui/aios/adapter/AlarmAdapter.java @@ -1,7 +1,10 @@ package com.uiui.aios.adapter; +import android.content.Context; +import android.graphics.Bitmap; import android.media.AudioAttributes; import android.media.MediaPlayer; +import android.os.Build; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; @@ -13,23 +16,25 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.uiui.aios.R; import com.uiui.aios.bean.AlarmClockData; -import com.uiui.aios.utils.AudioUtils; +import com.uiui.aios.utils.FFmpegUtils; +import com.uiui.aios.view.MyJzvdStdNoTitleNoClarity; import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; import java.util.List; +import java.util.regex.Pattern; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; public class AlarmAdapter extends RecyclerView.Adapter { + private FragmentActivity mContext; private List mAlarmClockData; public void setAlarmClockData(List alarmClockData) { @@ -40,6 +45,7 @@ public class AlarmAdapter extends RecyclerView.Adapter { @NonNull @Override public holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + mContext = (FragmentActivity) parent.getContext(); return new AlarmAdapter.holder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_alarm_clock, parent, false)); } @@ -48,15 +54,16 @@ public class AlarmAdapter extends RecyclerView.Adapter { AlarmClockData alarmClockData = mAlarmClockData.get(position); switch (alarmClockData.getType()) { case 1: - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = sdf.parse(alarmClockData.getTime()); - SimpleDateFormat hours = new SimpleDateFormat("HH:mm"); - String time = hours.format(date); - holder.tv_time.setText(time); - } catch (ParseException e) { - e.printStackTrace(); - } +// try { +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); +// Date date = sdf.parse(alarmClockData.getTime()); +// SimpleDateFormat hours = new SimpleDateFormat("HH:mm"); +// String time = hours.format(date); +// holder.tv_time.setText(time); +// } catch (ParseException e) { +// e.printStackTrace(); +// } + holder.tv_time.setText(alarmClockData.getTime()); holder.tv_remind_type.setText("单次"); break; case 2: @@ -101,7 +108,7 @@ public class AlarmAdapter extends RecyclerView.Adapter { } //让MediaPlayer对象准备,用这个方法防止加载时耗时导致anr mMediaPlayer.prepareAsync(); - AudioUtils.getDurationInMilliseconds(voice, new Observer() { + FFmpegUtils.getDurationInMilliseconds(voice, new Observer() { @Override public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) { @@ -129,7 +136,60 @@ public class AlarmAdapter extends RecyclerView.Adapter { } }); } + String url = alarmClockData.getFile(); + if (TextUtils.isEmpty(url)) { + holder.cl_vp.setVisibility(View.GONE); + } else { + holder.cl_vp.setVisibility(View.VISIBLE); + if (isImgUrl(url)) { + holder.imageView.setVisibility(View.VISIBLE); + holder.jz_video.setVisibility(View.GONE); + if (!mContext.isDestroyed()) { + Glide.with(mContext).load(url).into(holder.imageView); + } + } else { + holder.imageView.setVisibility(View.GONE); + holder.jz_video.setVisibility(View.VISIBLE); + holder.jz_video.setUp(url, ""); + holder.jz_video.startButton.setImageDrawable(mContext.getDrawable(R.drawable.play)); + FFmpegUtils.loadVideoScreenshot(url, new Observer() { + @Override + public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) { + } + + @Override + public void onNext(@io.reactivex.rxjava3.annotations.NonNull Bitmap bitmap) { + if (!mContext.isDestroyed()) { + Glide.with(mContext).load(bitmap).into(holder.jz_video.posterImageView); + } + holder.jz_video.startButton.setImageDrawable(mContext.getDrawable(R.drawable.play)); + } + + @Override + public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + + } + } + + + } + + private Pattern mCompile = Pattern.compile(".*?(gif|jpeg|png|jpg|bmp|webp)"); + + private boolean isImgUrl(String url) { + if (TextUtils.isEmpty(url) || url.trim().length() == 0) { + return false; + } + return mCompile.matcher(url).matches(); } @Override @@ -138,13 +198,11 @@ public class AlarmAdapter extends RecyclerView.Adapter { } class holder extends RecyclerView.ViewHolder { - TextView tv_time; - TextView tv_remind_type; - TextView tv_title; - TextView tv_voice; - ConstraintLayout cl_voice; + TextView tv_time, tv_remind_type, tv_title, tv_voice; + ConstraintLayout cl_voice, cl_vp; + MyJzvdStdNoTitleNoClarity jz_video; + ImageView imageView; Switch switch1; - ImageView iv_delete; public holder(@NonNull View itemView) { super(itemView); @@ -154,7 +212,9 @@ public class AlarmAdapter extends RecyclerView.Adapter { tv_voice = itemView.findViewById(R.id.tv_voice); cl_voice = itemView.findViewById(R.id.cl_voice); switch1 = itemView.findViewById(R.id.switch1); - iv_delete = itemView.findViewById(R.id.iv_delete); + cl_vp = itemView.findViewById(R.id.cl_vp); + jz_video = itemView.findViewById(R.id.jz_video); + imageView = itemView.findViewById(R.id.imageView); } } } diff --git a/app/src/main/java/com/uiui/aios/adapter/NotificationAdapter.java b/app/src/main/java/com/uiui/aios/adapter/NotificationAdapter.java index abdf885..ca3a96f 100644 --- a/app/src/main/java/com/uiui/aios/adapter/NotificationAdapter.java +++ b/app/src/main/java/com/uiui/aios/adapter/NotificationAdapter.java @@ -15,7 +15,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.uiui.aios.R; import com.uiui.aios.bean.AlarmClockData; -import com.uiui.aios.utils.AudioUtils; +import com.uiui.aios.utils.FFmpegUtils; import java.io.IOException; import java.util.List; @@ -59,7 +59,7 @@ public class NotificationAdapter extends RecyclerView.Adapter() { + FFmpegUtils.getDurationInMilliseconds(voice, new Observer() { @Override public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) { diff --git a/app/src/main/java/com/uiui/aios/bean/AlarmClockData.java b/app/src/main/java/com/uiui/aios/bean/AlarmClockData.java index a9f34eb..4b88b3c 100644 --- a/app/src/main/java/com/uiui/aios/bean/AlarmClockData.java +++ b/app/src/main/java/com/uiui/aios/bean/AlarmClockData.java @@ -18,6 +18,8 @@ public class AlarmClockData implements Serializable { String voice;//语音文件地址 String voice_md5; String file;//图片或视频文件地址 + int remind_type; + int is_onoff;//0关闭 1开启 boolean finished = false; @@ -85,6 +87,22 @@ public class AlarmClockData implements Serializable { this.finished = finished; } + public int getRemind_type() { + return remind_type; + } + + public void setRemind_type(int remind_type) { + this.remind_type = remind_type; + } + + public int getIs_onoff() { + return is_onoff; + } + + public void setIs_onoff(int is_onoff) { + this.is_onoff = is_onoff; + } + @NonNull @Override public String toString() { @@ -102,6 +120,9 @@ public class AlarmClockData implements Serializable { if (!voice.equals(((AlarmClockData) obj).voice)) return false; if (!voice_md5.equals(((AlarmClockData) obj).voice_md5)) return false; if (!file.equals(((AlarmClockData) obj).file)) return false; + if (remind_type != ((AlarmClockData) obj).remind_type) return false; + if (is_onoff != ((AlarmClockData) obj).is_onoff) return false; + return true; } } diff --git a/app/src/main/java/com/uiui/aios/fragment/CustomFragment.java b/app/src/main/java/com/uiui/aios/fragment/CustomFragment.java index e7f80e2..2a0f059 100644 --- a/app/src/main/java/com/uiui/aios/fragment/CustomFragment.java +++ b/app/src/main/java/com/uiui/aios/fragment/CustomFragment.java @@ -50,6 +50,7 @@ import com.uiui.aios.adapter.SOSNnmberAdapter; import com.uiui.aios.bean.AlarmClockData; import com.uiui.aios.bean.AlarmItem; import com.uiui.aios.manager.AmapManager; +import com.uiui.aios.utils.AlarmUtils; import com.uiui.aios.utils.ApkUtils; import com.uiui.aios.utils.AppUtil; import com.uiui.aios.utils.SchemeUtils; @@ -442,11 +443,8 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt private void getAlarmClock() { String jsonString = mmkv.decodeString("AlarmClock", ""); if (!TextUtils.isEmpty(jsonString)) { - Type type = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - List data = gson.fromJson(jsonString, type); - List showData = data.subList(0, 1); + List data = new ArrayList<>(); + data.add(AlarmUtils.getInstance().getRecentAlarmClock()); notificationAdapter.setDataList(data); rv_noti.setVisibility(View.VISIBLE); iv_note_nodata.setVisibility(View.GONE); diff --git a/app/src/main/java/com/uiui/aios/utils/AlarmUtils.java b/app/src/main/java/com/uiui/aios/utils/AlarmUtils.java index 0511a30..69c78bb 100644 --- a/app/src/main/java/com/uiui/aios/utils/AlarmUtils.java +++ b/app/src/main/java/com/uiui/aios/utils/AlarmUtils.java @@ -18,9 +18,14 @@ import com.uiui.aios.service.main.MainService; import java.io.File; import java.lang.reflect.Type; +import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -107,7 +112,7 @@ public class AlarmUtils { }.getType(); Gson gson = new Gson(); List data = gson.fromJson(jsonString, type); - HashMap hashMap = new HashMap(); + HashMap hashMap = new HashMap<>(); for (AlarmClockData clockData : data) { hashMap.put(clockData.getId(), clockData); } @@ -115,6 +120,41 @@ public class AlarmUtils { } } + public List getOldDataList() { + String jsonString = mmkv.decodeString("AlarmClock", ""); + Log.e(TAG, "getOldPendingIntents: " + jsonString); + if (TextUtils.isEmpty(jsonString)) { + return new ArrayList<>(); + } else { + Type type = new TypeToken>() { + }.getType(); + Gson gson = new Gson(); + List data = gson.fromJson(jsonString, type); + return data; + } + } + + public AlarmClockData getRecentAlarmClock() { + List alarmClockData = getOldDataList(); + if (alarmClockData == null || alarmClockData.size() == 0) { + return null; + } else { + Collections.sort(alarmClockData, new Comparator() { + DateFormat df = new SimpleDateFormat("HH:mm"); + + @Override + public int compare(AlarmClockData o1, AlarmClockData o2) { + try { + return df.parse(o1.getTime()).compareTo(df.parse(o2.getTime())); + } catch (ParseException e) { + throw new IllegalArgumentException(e); + } + } + }); + return alarmClockData.get(0); + } + } + private HashSet getOldPendingIntents() { HashSet pendingIntents = new HashSet<>(); HashMap data = getOldData(); @@ -246,7 +286,6 @@ public class AlarmUtils { } - public void ariaDownload(String url, String md5) { String fileName = Utils.getFileNamefromURL(url); File file = new File(Utils.getDownLoadPath(mContext) + fileName); diff --git a/app/src/main/java/com/uiui/aios/utils/AudioUtils.java b/app/src/main/java/com/uiui/aios/utils/FFmpegUtils.java similarity index 58% rename from app/src/main/java/com/uiui/aios/utils/AudioUtils.java rename to app/src/main/java/com/uiui/aios/utils/FFmpegUtils.java index 0511578..39e8acd 100644 --- a/app/src/main/java/com/uiui/aios/utils/AudioUtils.java +++ b/app/src/main/java/com/uiui/aios/utils/FFmpegUtils.java @@ -1,5 +1,7 @@ package com.uiui.aios.utils; +import android.content.Context; +import android.graphics.Bitmap; import android.util.Log; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; @@ -11,7 +13,7 @@ import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.schedulers.Schedulers; import wseemann.media.FFmpegMediaMetadataRetriever; -public class AudioUtils { +public class FFmpegUtils { /** * 获取在线音频时间长度 * @@ -34,4 +36,22 @@ public class AudioUtils { .observeOn(AndroidSchedulers.mainThread()) .subscribe(observer); } + + public static void loadVideoScreenshot(String url, Observer observer) { + Observable.create(new ObservableOnSubscribe() { + @Override + public void subscribe(@NonNull ObservableEmitter emitter) throws Throwable { + FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever(); + mmr.setDataSource(url); + mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ALBUM); + mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ARTIST); + Bitmap b = mmr.getFrameAtTime(2000000, FFmpegMediaMetadataRetriever.OPTION_CLOSEST); // frame at 2 seconds + byte[] artwork = mmr.getEmbeddedPicture(); + mmr.release(); + emitter.onNext(b); + } + }).subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(observer); + } } diff --git a/app/src/main/java/com/uiui/aios/utils/IconUtils.java b/app/src/main/java/com/uiui/aios/utils/IconUtils.java index 22a1e6d..01cb120 100644 --- a/app/src/main/java/com/uiui/aios/utils/IconUtils.java +++ b/app/src/main/java/com/uiui/aios/utils/IconUtils.java @@ -39,9 +39,9 @@ public class IconUtils { this.add("com.mediatek.fmradio");//收音机 this.add("com.android.fmradio");//收音机 this.add("com.android.email");//电子邮件 - this.add("com.ss.android.ugc.aweme");//抖音 - this.add("com.ss.android.article.news");//头条 - this.add("com.tencent.mm");//微信 +// this.add("com.ss.android.ugc.aweme");//抖音 +// this.add("com.ss.android.article.news");//头条 +// this.add("com.tencent.mm");//微信 }}; public static List appIconList = new ArrayList() {{ @@ -77,9 +77,9 @@ public class IconUtils { this.add("com_mediatek_fmradio"); this.add("com_mediatek_fmradio");//收音机 this.add("com_android_email"); - this.add("com_android_aweme2"); - this.add("com_android_news2"); - this.add("com_tencent_mm2"); +// this.add("com_android_aweme2"); +// this.add("com_android_news2"); +// this.add("com_tencent_mm2"); }}; public static List appIconList2 = new ArrayList() {{ diff --git a/app/src/main/java/com/uiui/aios/view/MyJzvdStdNoTitleNoClarity.java b/app/src/main/java/com/uiui/aios/view/MyJzvdStdNoTitleNoClarity.java new file mode 100644 index 0000000..381dd75 --- /dev/null +++ b/app/src/main/java/com/uiui/aios/view/MyJzvdStdNoTitleNoClarity.java @@ -0,0 +1,25 @@ +package com.uiui.aios.view; + +import android.content.Context; +import android.util.AttributeSet; + +import com.uiui.aios.R; + +import cn.jzvd.JzvdStd; + +public class MyJzvdStdNoTitleNoClarity extends JzvdStd { + + public MyJzvdStdNoTitleNoClarity(Context context) { + super(context); + } + + public MyJzvdStdNoTitleNoClarity(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public int getLayoutId() { + return R.layout.layout_jzstd_notitle; + } + +} diff --git a/app/src/main/res/drawable-hdpi/play.png b/app/src/main/res/drawable-hdpi/play.png new file mode 100644 index 0000000..eeeed5a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/play.png differ diff --git a/app/src/main/res/layout-land/fragment_custom.xml b/app/src/main/res/layout-land/fragment_custom.xml index d01bc32..3d988dd 100644 --- a/app/src/main/res/layout-land/fragment_custom.xml +++ b/app/src/main/res/layout-land/fragment_custom.xml @@ -8,8 +8,6 @@ @@ -81,7 +82,10 @@ android:id="@+id/cl_note" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="4dp" android:layout_weight="3" android:background="@drawable/custom_background"> @@ -133,7 +137,10 @@ android:id="@+id/cl_sos" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="4dp" android:layout_weight="2" android:background="@drawable/custom_background"> @@ -232,7 +239,10 @@ android:id="@+id/cl_health" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="8dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background" tools:ignore="NestedWeights"> @@ -267,7 +277,10 @@ android:id="@+id/cl_tongue" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> @@ -301,7 +314,10 @@ android:id="@+id/cl_face" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> @@ -334,7 +350,10 @@ android:id="@+id/cl_hand" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> diff --git a/app/src/main/res/layout-land/fragment_second.xml b/app/src/main/res/layout-land/fragment_second.xml index 05f940d..d585838 100644 --- a/app/src/main/res/layout-land/fragment_second.xml +++ b/app/src/main/res/layout-land/fragment_second.xml @@ -19,10 +19,10 @@ @@ -174,10 +174,10 @@ @@ -269,10 +269,10 @@ android:id="@+id/cl_activity" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_marginStart="16dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="8dp" - android:layout_marginBottom="16dp" + android:layout_marginStart="8dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> @@ -390,10 +390,10 @@ android:id="@+id/cl_demand" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_marginStart="8dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="16dp" - android:layout_marginBottom="16dp" + android:layout_marginStart="4dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> diff --git a/app/src/main/res/layout-port/fragment_custom.xml b/app/src/main/res/layout-port/fragment_custom.xml index d01bc32..3d988dd 100644 --- a/app/src/main/res/layout-port/fragment_custom.xml +++ b/app/src/main/res/layout-port/fragment_custom.xml @@ -8,8 +8,6 @@ @@ -81,7 +82,10 @@ android:id="@+id/cl_note" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="4dp" android:layout_weight="3" android:background="@drawable/custom_background"> @@ -133,7 +137,10 @@ android:id="@+id/cl_sos" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="4dp" android:layout_weight="2" android:background="@drawable/custom_background"> @@ -232,7 +239,10 @@ android:id="@+id/cl_health" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="8dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background" tools:ignore="NestedWeights"> @@ -267,7 +277,10 @@ android:id="@+id/cl_tongue" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> @@ -301,7 +314,10 @@ android:id="@+id/cl_face" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> @@ -334,7 +350,10 @@ android:id="@+id/cl_hand" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_margin="8dp" + android:layout_marginStart="4dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> diff --git a/app/src/main/res/layout-port/fragment_second.xml b/app/src/main/res/layout-port/fragment_second.xml index 05f940d..d585838 100644 --- a/app/src/main/res/layout-port/fragment_second.xml +++ b/app/src/main/res/layout-port/fragment_second.xml @@ -19,10 +19,10 @@ @@ -174,10 +174,10 @@ @@ -269,10 +269,10 @@ android:id="@+id/cl_activity" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_marginStart="16dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="8dp" - android:layout_marginBottom="16dp" + android:layout_marginStart="8dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="4dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> @@ -390,10 +390,10 @@ android:id="@+id/cl_demand" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_marginStart="8dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="16dp" - android:layout_marginBottom="16dp" + android:layout_marginStart="4dp" + android:layout_marginTop="4dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="8dp" android:layout_weight="1" android:background="@drawable/custom_background"> diff --git a/app/src/main/res/layout/activity_notice.xml b/app/src/main/res/layout/activity_notice.xml index a095955..0162943 100644 --- a/app/src/main/res/layout/activity_notice.xml +++ b/app/src/main/res/layout/activity_notice.xml @@ -51,8 +51,8 @@ -