188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir/* 288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * Copyright (C) 2017 The Android Open Source Project 388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * 488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * Licensed under the Apache License, Version 2.0 (the "License"); 588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * you may not use this file except in compliance with the License. 688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * You may obtain a copy of the License at 788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * 888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * http://www.apache.org/licenses/LICENSE-2.0 988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * 1088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * Unless required by applicable law or agreed to in writing, software 1188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * distributed under the License is distributed on an "AS IS" BASIS, 1288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * See the License for the specific language governing permissions and 1488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * limitations under the License. 1588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir */ 1688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 1788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirpackage com.example.android.support.text.emoji; 1888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 1988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirimport android.content.Context; 2088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirimport android.os.Build; 2188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirimport android.support.annotation.RequiresApi; 2288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirimport android.util.AttributeSet; 2388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirimport android.view.LayoutInflater; 2488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirimport android.widget.CompoundButton; 2588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirimport android.widget.LinearLayout; 2688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirimport android.widget.Switch; 2788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 2888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir/** 2988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir * Layout that includes configuration parameters. 3088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir */ 3188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinirpublic class ConfigLayout extends LinearLayout { 3288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir private Switch mEnableEmojiCompat; 3388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir private Switch mReplaceAll; 3488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir private Switch mDownloadable; 3588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir private Switch mIndicator; 3688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 3788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public ConfigLayout(Context context) { 3888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir super(context); 3988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir init(context); 4088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 4188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 4288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public ConfigLayout(Context context, AttributeSet attrs) { 4388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir super(context, attrs); 4488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir init(context); 4588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 4688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 4788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @RequiresApi(api = Build.VERSION_CODES.HONEYCOMB) 4888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public ConfigLayout(Context context, AttributeSet attrs, 4988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir int defStyleAttr) { 5088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir super(context, attrs, defStyleAttr); 5188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir init(context); 5288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 5388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 5488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) 5588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public ConfigLayout(Context context, AttributeSet attrs, 5688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir int defStyleAttr, int defStyleRes) { 5788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir super(context, attrs, defStyleAttr, defStyleRes); 5888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir init(context); 5988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 6088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 6188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir private void init(Context context) { 6288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir setOrientation(VERTICAL); 6388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir LayoutInflater.from(context).inflate(R.layout.layout_config, this, true); 6488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 6588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mEnableEmojiCompat = findViewById(R.id.enable); 6688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mEnableEmojiCompat.setChecked(Config.get().isCompatEnabled()); 6788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mEnableEmojiCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 6888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @Override 6988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 7088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir post(new Runnable() { 7188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @Override 7288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public void run() { 7388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir fireListener(); 7488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 7588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir }); 7688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 7788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir }); 7888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 7988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mReplaceAll = findViewById(R.id.replaceAll); 8088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mReplaceAll.setChecked(Config.get().isReplaceAll()); 8188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mReplaceAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 8288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @Override 8388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 8488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir post(new Runnable() { 8588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @Override 8688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public void run() { 8788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir fireListener(); 8888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 8988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir }); 9088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 9188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir }); 9288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 9388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mDownloadable = findViewById(R.id.useDownloadable); 9488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mDownloadable.setChecked(Config.get().isDownloadable()); 9588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mDownloadable.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 9688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @Override 9788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 9888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir post(new Runnable() { 9988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @Override 10088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public void run() { 10188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir fireListener(); 10288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 10388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir }); 10488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 10588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir }); 10688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 10788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mIndicator = findViewById(R.id.indicator); 10888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mIndicator.setChecked(Config.get().isIndicator()); 10988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mIndicator.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 11088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @Override 11188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 11288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir post(new Runnable() { 11388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir @Override 11488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir public void run() { 11588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir fireListener(); 11688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 11788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir }); 11888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 11988257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir }); 12088257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 12188257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 12288257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 12388257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir void fireListener() { 12488257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir Config.get().update(mEnableEmojiCompat.isChecked(), mReplaceAll.isChecked(), 12588257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir mDownloadable.isChecked(), mIndicator.isChecked()); 12688257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir } 12788257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir 12888257c64fd28b11c082b56f2f81edca8641c410cSiyamed Sinir} 129