新增侧边栏功能,修改文件夹显示方式,完善多级文件夹的逻辑,完善多级文件夹和便签同时显现的问题,新增在侧边栏删除文件夹的功能 #27

Merged
psq5hzxpo merged 1 commits from luhaozhe_branch into master 4 weeks ago

@ -131,21 +131,33 @@ public class DataUtils {
}
// 检查目标ID是否是一个文件夹TYPE_FOLDER或TYPE_SYSTEM
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, folderId),
new String[] { NoteColumns.TYPE },
null,
null,
null);
boolean isFolder = false;
if (cursor != null) {
if (cursor.moveToFirst()) {
int type = cursor.getInt(0);
if (type == Notes.TYPE_FOLDER || type == Notes.TYPE_SYSTEM) {
isFolder = true;
// 特殊处理系统文件夹ID它们是逻辑ID不是实际的数据库记录ID
if (folderId == Notes.ID_ROOT_FOLDER ||
folderId == Notes.ID_TEMPARAY_FOLDER ||
folderId == Notes.ID_CALL_RECORD_FOLDER ||
folderId == Notes.ID_TRASH_FOLER ||
folderId == Notes.ID_PRIVACY_SPACE_FOLDER) {
isFolder = true;
Log.d(TAG, "Target is a system folder: " + folderId);
} else {
// 对于非系统文件夹,查询数据库验证
Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, folderId),
new String[] { NoteColumns.TYPE },
null,
null,
null);
if (cursor != null) {
if (cursor.moveToFirst()) {
int type = cursor.getInt(0);
if (type == Notes.TYPE_FOLDER || type == Notes.TYPE_SYSTEM) {
isFolder = true;
}
}
cursor.close();
}
cursor.close();
}
if (!isFolder) {
@ -456,4 +468,52 @@ public class DataUtils {
}
return snippet;
}
/**
* 便
* <p>
* 便
* </p>
*
* @param resolver ContentResolver
* @param folderId ID
* @return 便
*/
public static int getNoteCount(ContentResolver resolver, long folderId) {
Cursor cursor = resolver.query(
Notes.CONTENT_NOTE_URI,
new String[] { "COUNT(*)" },
NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "=?",
new String[] { String.valueOf(Notes.TYPE_NOTE), String.valueOf(folderId) },
null
);
int count = 0;
if (cursor != null) {
if (cursor.moveToFirst()) {
try {
count = cursor.getInt(0);
} catch (IndexOutOfBoundsException e) {
Log.e(TAG, "get note count failed:" + e.toString());
} finally {
cursor.close();
}
}
}
return count;
}
/**
* 便
* <p>
* 便便
* </p>
*
* @param resolver ContentResolver
* @return 便
*/
public static int getUncategorizedNoteCount(ContentResolver resolver) {
// 未分类的便签就是直接在根文件夹中的便签
return getNoteCount(resolver, Notes.ID_ROOT_FOLDER);
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,142 @@
package net.micode.notes.ui;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import net.micode.notes.R;
import java.util.List;
public class SidebarAdapter extends BaseAdapter {
private Context mContext;
private List<SidebarItem> mItems;
public SidebarAdapter(Context context, List<SidebarItem> items) {
mContext = context;
mItems = items;
}
@Override
public int getCount() {
return mItems != null ? mItems.size() : 0;
}
@Override
public Object getItem(int position) {
return mItems != null ? mItems.get(position) : null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.sidebar_item, parent, false);
}
SidebarItem item = mItems.get(position);
TextView titleTextView = convertView.findViewById(R.id.item_title);
TextView countTextView = convertView.findViewById(R.id.item_count);
titleTextView.setText(item.getTitle());
if (item.getCount() > 0) {
countTextView.setVisibility(View.VISIBLE);
countTextView.setText(String.valueOf(item.getCount()));
} else {
countTextView.setVisibility(View.GONE);
}
if (item.isSelected()) {
convertView.setBackgroundColor(mContext.getResources().getColor(R.color.primary, null));
titleTextView.setTextColor(mContext.getResources().getColor(R.color.onPrimary, null));
countTextView.setTextColor(mContext.getResources().getColor(R.color.onPrimary, null));
} else {
convertView.setBackgroundColor(mContext.getResources().getColor(R.color.surface, null));
titleTextView.setTextColor(mContext.getResources().getColor(R.color.onSurface, null));
countTextView.setTextColor(mContext.getResources().getColor(R.color.primary, null));
}
return convertView;
}
public static class SidebarItem {
private String mTitle;
private int mCount;
private boolean mSelected;
private String mTag;
private long mCategoryId;
private QuickViewType mQuickViewType;
public SidebarItem(String title) {
mTitle = title;
mCount = 0;
mSelected = false;
}
public SidebarItem(String title, int count) {
mTitle = title;
mCount = count;
mSelected = false;
}
public SidebarItem(String title, int count, long categoryId) {
mTitle = title;
mCount = count;
mSelected = false;
mCategoryId = categoryId;
}
public SidebarItem(String title, int count, String tag) {
mTitle = title;
mCount = count;
mSelected = false;
mTag = tag;
}
public SidebarItem(String title, int count, QuickViewType type) {
mTitle = title;
mCount = count;
mSelected = false;
mQuickViewType = type;
}
public String getTitle() {
return mTitle;
}
public int getCount() {
return mCount;
}
public boolean isSelected() {
return mSelected;
}
public void setSelected(boolean selected) {
mSelected = selected;
}
public String getTag() {
return mTag;
}
public long getCategoryId() {
return mCategoryId;
}
public QuickViewType getQuickViewType() {
return mQuickViewType;
}
public enum QuickViewType {
ALL, PINNED, TODAY, UNTAGGED
}
}
}

@ -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="@color/surfaceVariant" />
<corners android:radius="12dp" />
<stroke
android:width="1dp"
android:color="@color/primary"
android:alpha="0.3" />
</shape>

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/onSurfaceVariant"
android:pathData="M10,4L12,6L20,6C21.1,6 22,6.9 22,8L22,18C22,19.1 21.1,20 20,20L4,20C2.89,20 2,19.1 2,18L2,6C2,4.89 2.89,4 4,4L10,4ZM10,4L12,6L10,6L10,4ZM11,14L8,14L8,11L6,11L6,14L3,14L3,16L6,16L6,19L8,19L8,16L11,16L11,14Z" />
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 597 B

@ -15,175 +15,221 @@
limitations under the License.
-->
<RelativeLayout
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/note_list_root"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background"
android:fitsSystemWindows="true">
<LinearLayout
android:id="@+id/main_content"
<!-- 主内容区域 -->
<RelativeLayout
android:id="@+id/main_content_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_above="@+id/view_switcher">
android:layout_height="match_parent">
<!-- 搜索栏 -->
<LinearLayout
android:id="@+id/search_bar"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_above="@+id/view_switcher">
<!-- 顶部栏 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingHorizontal="16dp"
android:paddingTop="16dp"
android:paddingBottom="8dp">
<Button
android:id="@+id/btn_sidebar_toggle"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@android:drawable/ic_menu_sort_by_size"
android:layout_marginRight="16dp"
android:elevation="4dp" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="小米便签"
android:textSize="20sp"
android:textColor="@color/onSurface"
android:fontFamily="sans-serif-medium" />
</LinearLayout>
<!-- 搜索栏 -->
<LinearLayout
android:id="@+id/search_bar"
android:layout_width="match_parent"
android:layout_height="54dp"
android:layout_margin="16dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:background="@color/surface"
android:elevation="4dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="16dp"
android:radius="12dp">
<ImageView
android:id="@+id/search_icon"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="12dp"
android:alpha="0.6"
android:src="@android:drawable/ic_menu_search"
android:tint="@color/onSurface" />
<EditText
android:id="@+id/search_edit_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:alpha="0.6"
android:background="@null"
android:hint="搜索便签..."
android:imeOptions="actionSearch"
android:inputType="text"
android:singleLine="true"
android:textColor="@color/onSurface"
android:textColorHint="@color/onSurface"
android:textSize="16sp" />
<ImageView
android:id="@+id/search_clear"
android:layout_width="24dp"
android:layout_height="24dp"
android:alpha="0.6"
android:src="@android:drawable/ic_menu_close_clear_cancel"
android:tint="@color/onSurface"
android:visibility="gone" />
<!-- 标签选择按钮 -->
<ImageView
android:id="@+id/search_tags_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginLeft="12dp"
android:alpha="0.6"
android:clickable="true"
android:contentDescription="标签"
android:focusable="true"
android:src="@android:drawable/ic_menu_more"
android:tint="@color/onSurface" />
<ImageView
android:id="@+id/search_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginLeft="12dp"
android:clickable="true"
android:contentDescription="搜索"
android:focusable="true"
android:src="@android:drawable/ic_menu_search"
android:tint="@color/primary" />
</LinearLayout>
<ListView
android:id="@+id/notes_list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:cacheColorHint="@null"
android:listSelector="@android:color/transparent"
android:divider="@null"
android:dividerHeight="8dp"
android:padding="8dp"
android:fadingEdge="@null" />
</LinearLayout>
<!-- 界面切换栏 -->
<LinearLayout
android:id="@+id/view_switcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/surface"
android:padding="16dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_margin="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp"
android:elevation="4dp"
android:radius="12dp">
<ImageView
android:id="@+id/search_icon"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@android:drawable/ic_menu_search"
android:tint="@color/onSurface"
android:alpha="0.6"
android:layout_marginRight="12dp" />
<EditText
android:id="@+id/search_edit_text"
android:gravity="center_horizontal"
android:padding="8dp"
android:layout_alignParentBottom="true"
android:elevation="8dp">
<TextView
android:id="@+id/notes_tab"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:background="@null"
android:hint="搜索便签..."
android:layout_weight="1"
android:text="便签"
android:textSize="16sp"
android:singleLine="true"
android:imeOptions="actionSearch"
android:inputType="text"
android:textColorHint="@color/onSurface"
android:alpha="0.6"
android:textColor="@color/onSurface" />
<ImageView
android:id="@+id/search_clear"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@android:drawable/ic_menu_close_clear_cancel"
android:tint="@color/onSurface"
android:alpha="0.6"
android:visibility="gone" />
<!-- 标签选择按钮 -->
<ImageView
android:id="@+id/search_tags_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@android:drawable/ic_menu_more"
android:tint="@color/onSurface"
android:alpha="0.6"
android:layout_marginLeft="12dp"
android:textColor="@color/primary"
android:gravity="center"
android:padding="16dp"
android:background="@drawable/selected_tab_bg"
android:clickable="true"
android:focusable="true"
android:contentDescription="标签" />
<ImageView
android:id="@+id/search_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@android:drawable/ic_menu_search"
android:tint="@color/primary"
android:layout_marginLeft="12dp"
android:fontFamily="sans-serif-medium" />
<TextView
android:id="@+id/todo_tab"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="代办"
android:textSize="16sp"
android:textColor="@color/onSurface"
android:alpha="0.6"
android:gravity="center"
android:padding="16dp"
android:background="@drawable/unselected_tab_bg"
android:clickable="true"
android:focusable="true"
android:contentDescription="搜索" />
android:fontFamily="sans-serif-medium" />
</LinearLayout>
<ListView
android:id="@+id/notes_list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:cacheColorHint="@null"
android:listSelector="@android:color/transparent"
android:divider="@null"
android:dividerHeight="8dp"
android:padding="8dp"
android:fadingEdge="@null" />
<!-- 圆形加号按钮 -->
<Button
android:id="@+id/btn_add_note"
android:background="@drawable/ic_add_circle"
android:layout_width="64dp"
android:layout_height="64dp"
android:focusable="false"
android:layout_alignParentRight="true"
android:layout_above="@+id/view_switcher"
android:layout_marginRight="24dp"
android:layout_marginBottom="24dp"
android:elevation="8dp"
android:stateListAnimator="@anim/btn_add_note_elevation" />
</LinearLayout>
<!-- 界面切换栏 -->
<LinearLayout
android:id="@+id/view_switcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/surface"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:padding="8dp"
android:layout_alignParentBottom="true"
android:elevation="8dp">
<TextView
android:id="@+id/notes_tab"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="便签"
android:textSize="16sp"
<!-- 隐私空间返回按钮 -->
<Button
android:id="@+id/btn_privacy_back"
android:layout_width="120dp"
android:layout_height="48dp"
android:layout_alignParentLeft="true"
android:layout_above="@+id/view_switcher"
android:layout_marginLeft="24dp"
android:layout_marginBottom="24dp"
android:background="@color/surface"
android:elevation="4dp"
android:radius="24dp"
android:text="返回主界面"
android:textColor="@color/primary"
android:gravity="center"
android:padding="16dp"
android:background="@drawable/selected_tab_bg"
android:clickable="true"
android:focusable="true"
android:fontFamily="sans-serif-medium" />
<TextView
android:id="@+id/todo_tab"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="代办"
android:textSize="16sp"
android:textColor="@color/onSurface"
android:alpha="0.6"
android:gravity="center"
android:padding="16dp"
android:background="@drawable/unselected_tab_bg"
android:clickable="true"
android:focusable="true"
android:visibility="gone"
android:fontFamily="sans-serif-medium" />
</LinearLayout>
<!-- 圆形加号按钮 -->
<Button
android:id="@+id/btn_add_note"
android:background="@drawable/ic_add_circle"
android:layout_width="64dp"
android:layout_height="64dp"
android:focusable="false"
android:layout_alignParentRight="true"
android:layout_above="@+id/view_switcher"
android:layout_marginRight="24dp"
android:layout_marginBottom="24dp"
android:elevation="8dp"
android:stateListAnimator="@anim/btn_add_note_elevation" />
<!-- 隐私空间返回按钮 -->
<Button
android:id="@+id/btn_privacy_back"
android:layout_width="120dp"
android:layout_height="48dp"
android:layout_alignParentLeft="true"
android:layout_above="@+id/view_switcher"
android:layout_marginLeft="24dp"
android:layout_marginBottom="24dp"
android:background="@color/surface"
android:elevation="4dp"
android:radius="24dp"
android:text="返回主界面"
android:textColor="@color/primary"
android:textSize="16sp"
android:gravity="center"
android:visibility="gone"
android:fontFamily="sans-serif-medium" />
</RelativeLayout>
</RelativeLayout>
<!-- 侧边栏 -->
<include
layout="@layout/sidebar_layout"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start" />
</androidx.drawerlayout.widget.DrawerLayout>

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="12dp">
<TextView
android:id="@+id/item_title"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textColor="@color/onSurface"
android:fontFamily="sans-serif-medium" />
<TextView
android:id="@+id/item_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textColor="@color/primary"
android:paddingLeft="8dp"
android:paddingRight="4dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:background="@drawable/count_badge"
android:visibility="gone" />
</LinearLayout>

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="280dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/surface"
android:elevation="8dp">
<!-- 侧边栏头部 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingHorizontal="16dp"
android:background="@color/primary">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="便签导航"
android:textSize="18sp"
android:textColor="@color/onPrimary"
android:fontFamily="sans-serif-medium" />
</LinearLayout>
<!-- 侧边栏内容区域 -->
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- 全部 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="16dp">
<LinearLayout
android:id="@+id/all_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/surface"
android:paddingHorizontal="16dp"
android:paddingVertical="12dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/all_title"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="全部"
android:textSize="16sp"
android:textColor="@color/onSurface"
android:fontFamily="sans-serif-medium" />
<TextView
android:id="@+id/all_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textColor="@color/primary"
android:paddingLeft="8dp"
android:paddingRight="4dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:background="@drawable/count_badge"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
<!-- 未分类 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/uncategorized_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/surface"
android:paddingHorizontal="16dp"
android:paddingVertical="12dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/uncategorized_title"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="未分类"
android:textSize="16sp"
android:textColor="@color/onSurface"
android:fontFamily="sans-serif-medium" />
<TextView
android:id="@+id/uncategorized_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textColor="@color/primary"
android:paddingLeft="8dp"
android:paddingRight="4dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:background="@drawable/count_badge"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
<!-- 我的文件夹标题 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingHorizontal="16dp"
android:paddingTop="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的文件夹"
android:textSize="14sp"
android:textColor="@color/onSurfaceVariant"
android:fontFamily="sans-serif-medium" />
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_folder_add"
android:layout_marginStart="8dp"
android:id="@+id/add_folder_button" />
</LinearLayout>
<!-- 用户文件夹 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/user_folder_list"
android:layout_width="match_parent"
android:layout_height="508dp"
android:divider="@null"
android:dividerHeight="0dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

@ -50,4 +50,6 @@
<color name="alert_text">#FF9800</color>
<color name="divider_color">#E0E0E0</color>
<color name="disabled_color">#BDBDBD</color>
<color name="surfaceVariant">#E7E0EC</color>
<color name="onSurfaceVariant">#49454F</color>
</resources>

@ -242,6 +242,7 @@
<string name="error_translate_failed">Translation failed. Please check your network connection and try again.</string>
<string name="error_failed_to_load_image">Failed to load image</string>
<string name="dialog_title_extracted_content">Extracted Content</string>
<string name="dialog_message_extracting_content">正在提取内容...</string>
<string name="dialog_button_insert">Insert</string>
<string name="dialog_button_cancel">Cancel</string>
<string name="info_content_inserted">Content inserted successfully</string>

Loading…
Cancel
Save