This repository has been archived on 2025-09-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
android_packages_apps_Cherish/src/com/cherish/settings/preferences/FODIconPicker.java
Stallix bdde870e34 Cherish: Add more FOD icons [2/2]
* Improve and re-write some codes
* Use 3 columns for choosing the icons
2020-05-28 08:20:53 +07:00

356 lines
14 KiB
Java

/*
* Copyright (C) 2020 CherishOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.cherish.settings.preferences;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.provider.Settings;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import androidx.core.content.res.TypedArrayUtils;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
import com.android.settingslib.Utils;
import com.android.settingslib.widget.LayoutPreference;
public class FODIconPicker extends LayoutPreference {
private boolean mAllowDividerAbove;
private boolean mAllowDividerBelow;
private View mRootView;
private static ImageButton Button0;
private static ImageButton Button1;
private static ImageButton Button2;
private static ImageButton Button3;
private static ImageButton Button4;
private static ImageButton Button5;
private static ImageButton Button6;
private static ImageButton Button7;
private static ImageButton Button8;
private static ImageButton Button9;
private static ImageButton Button10;
private static ImageButton Button11;
private static ImageButton Button12;
private static ImageButton Button13;
private static ImageButton Button14;
private static ImageButton Button15;
private static ImageButton Button16;
private static ImageButton Button17;
private static ImageButton Button18;
private static ImageButton Button19;
private static ImageButton Button20;
private static final String TAG = "FODIconPicker";
public FODIconPicker(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs, 0 /* defStyleAttr */);
}
public FODIconPicker(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs, defStyleAttr);
}
private void init(Context context, AttributeSet attrs, int defStyleAttr) {
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Preference);
mAllowDividerAbove = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerAbove,
R.styleable.Preference_allowDividerAbove, false);
mAllowDividerBelow = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerBelow,
R.styleable.Preference_allowDividerBelow, false);
a.recycle();
a = context.obtainStyledAttributes(
attrs, R.styleable.Preference, defStyleAttr, 0);
int layoutResource = a.getResourceId(R.styleable.Preference_android_layout, 0);
if (layoutResource == 0) {
throw new IllegalArgumentException("LayoutPreference requires a layout to be defined");
}
a.recycle();
// Need to create view now so that findViewById can be called immediately.
final View view = LayoutInflater.from(getContext())
.inflate(layoutResource, null, false);
setView(view, context);
}
private void setView(View view, Context context) {
setLayoutResource(R.layout.layout_preference_frame);
mRootView = view;
setShouldDisableView(false);
Button0 = findViewById(R.id.fodicon0_button);
Button1 = findViewById(R.id.fodicon1_button);
Button2 = findViewById(R.id.fodicon2_button);
Button3 = findViewById(R.id.fodicon3_button);
Button4 = findViewById(R.id.fodicon4_button);
Button5 = findViewById(R.id.fodicon5_button);
Button6 = findViewById(R.id.fodicon6_button);
Button7 = findViewById(R.id.fodicon7_button);
Button8 = findViewById(R.id.fodicon8_button);
Button9 = findViewById(R.id.fodicon9_button);
Button10 = findViewById(R.id.fodicon10_button);
Button11 = findViewById(R.id.fodicon11_button);
Button12 = findViewById(R.id.fodicon12_button);
Button13 = findViewById(R.id.fodicon13_button);
Button14 = findViewById(R.id.fodicon14_button);
Button15 = findViewById(R.id.fodicon15_button);
Button16 = findViewById(R.id.fodicon16_button);
Button17 = findViewById(R.id.fodicon17_button);
Button18 = findViewById(R.id.fodicon18_button);
Button19 = findViewById(R.id.fodicon19_button);
Button20 = findViewById(R.id.fodicon20_button);
int defaultfodicon = Settings.System.getInt(
context.getContentResolver(), Settings.System.FOD_ICON, 0);
if (defaultfodicon==0) {
updateHighlightedItem(Button0, context);
} else if (defaultfodicon == 1) {
updateHighlightedItem(Button1, context);
} else if (defaultfodicon == 2) {
updateHighlightedItem(Button2, context);
} else if (defaultfodicon == 3) {
updateHighlightedItem(Button3, context);
} else if (defaultfodicon == 4) {
updateHighlightedItem(Button4, context);
} else if (defaultfodicon == 5) {
updateHighlightedItem(Button5, context);
} else if (defaultfodicon == 6) {
updateHighlightedItem(Button6, context);
} else if (defaultfodicon == 7) {
updateHighlightedItem(Button7, context);
} else if (defaultfodicon == 8) {
updateHighlightedItem(Button8, context);
} else if (defaultfodicon == 9) {
updateHighlightedItem(Button9, context);
} else if (defaultfodicon == 10) {
updateHighlightedItem(Button10, context);
} else if (defaultfodicon == 11) {
updateHighlightedItem(Button11, context);
} else if (defaultfodicon == 12) {
updateHighlightedItem(Button12, context);
} else if (defaultfodicon == 13) {
updateHighlightedItem(Button13, context);
} else if (defaultfodicon == 14) {
updateHighlightedItem(Button14, context);
} else if (defaultfodicon == 15) {
updateHighlightedItem(Button15, context);
} else if (defaultfodicon == 16) {
updateHighlightedItem(Button16, context);
} else if (defaultfodicon == 17) {
updateHighlightedItem(Button17, context);
} else if (defaultfodicon == 18) {
updateHighlightedItem(Button18, context);
} else if (defaultfodicon == 19) {
updateHighlightedItem(Button19, context);
} else if (defaultfodicon == 20) {
updateHighlightedItem(Button20, context);
}
Button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(0, context);
updateHighlightedItem(Button0, context);
}
});
Button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(1, context);
updateHighlightedItem(Button1, context);
}
});
Button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(2, context);
updateHighlightedItem(Button2, context);
}
});
Button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(3, context);
updateHighlightedItem(Button3, context);
}
});
Button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(4, context);
updateHighlightedItem(Button4, context);
}
});
Button5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(5, context);
updateHighlightedItem(Button5, context);
}
});
Button6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(6, context);
updateHighlightedItem(Button6, context);
}
});
Button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(7, context);
updateHighlightedItem(Button7, context);
}
});
Button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(8, context);
updateHighlightedItem(Button8, context);
}
});
Button9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(9, context);
updateHighlightedItem(Button9, context);
}
});
Button10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(10, context);
updateHighlightedItem(Button10, context);
}
});
Button11.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(11, context);
updateHighlightedItem(Button11, context);
}
});
Button12.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(12, context);
updateHighlightedItem(Button12, context);
}
});
Button13.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(13, context);
updateHighlightedItem(Button13, context);
}
});
Button14.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(14, context);
updateHighlightedItem(Button14, context);
}
});
Button15.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(15, context);
updateHighlightedItem(Button15, context);
}
});
Button16.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(16, context);
updateHighlightedItem(Button16, context);
}
});
Button17.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(17, context);
updateHighlightedItem(Button17, context);
}
});
Button18.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(18, context);
updateHighlightedItem(Button18, context);
}
});
Button19.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(19, context);
updateHighlightedItem(Button19, context);
}
});
Button20.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updateSettings(20, context);
updateHighlightedItem(Button20, context);
}
});
}
private void updateSettings(int fodicon, Context context) {
Settings.System.putInt(context.getContentResolver(), Settings.System.FOD_ICON, fodicon);
}
private void updateHighlightedItem(ImageButton activebutton, Context context) {
int defaultcolor = context.getResources().getColor(R.color.fod_item_background_stroke_color);
ColorStateList defaulttint = ColorStateList.valueOf(defaultcolor);
Button0.setBackgroundTintList(defaulttint);
Button1.setBackgroundTintList(defaulttint);
Button2.setBackgroundTintList(defaulttint);
Button3.setBackgroundTintList(defaulttint);
Button4.setBackgroundTintList(defaulttint);
Button5.setBackgroundTintList(defaulttint);
Button6.setBackgroundTintList(defaulttint);
Button7.setBackgroundTintList(defaulttint);
Button8.setBackgroundTintList(defaulttint);
Button9.setBackgroundTintList(defaulttint);
Button10.setBackgroundTintList(defaulttint);
Button11.setBackgroundTintList(defaulttint);
Button12.setBackgroundTintList(defaulttint);
Button13.setBackgroundTintList(defaulttint);
Button14.setBackgroundTintList(defaulttint);
Button15.setBackgroundTintList(defaulttint);
Button16.setBackgroundTintList(defaulttint);
Button17.setBackgroundTintList(defaulttint);
Button18.setBackgroundTintList(defaulttint);
Button19.setBackgroundTintList(defaulttint);
Button20.setBackgroundTintList(defaulttint);
activebutton.setBackgroundTintList(Utils.getColorAttr(getContext(), android.R.attr.colorAccent));
}
}