• R/O
  • SSH
  • HTTPS

androidstudying: Commit


Commit MetaInfo

Revision56 (tree)
Time2020-03-03 09:46:48
Authorpbtdanh

Log Message

* update

Change Summary

Incremental Difference

--- trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/engine/DictEngine.java (revision 55)
+++ trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/engine/DictEngine.java (revision 56)
@@ -11,8 +11,6 @@
1111
1212 public abstract class DictEngine
1313 {
14- protected static DictEngine instance = null;
15-
1614 final static int SIZEOF_BLOCK_INFO = 12;
1715 final static int SIZEOF_DIC_HEADER = 64;
1816 final static int SIZEOF_WORD_ITEM = 8;
@@ -53,11 +51,6 @@
5351
5452 abstract void ReadDataAtBlock(byte[] blockData, int block);
5553
56- public static DictEngine getInstance()
57- {
58- return instance;
59- }
60-
6154 public int GetNumWordInDic()
6255 {
6356 return numWordInDic;
--- trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/engine/DictEngineExternal.java (revision 55)
+++ trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/engine/DictEngineExternal.java (revision 56)
@@ -50,23 +50,6 @@
5050
5151 public class DictEngineExternal extends DictEngine
5252 {
53- public static DictEngine getInstance() {
54- if (instance == null) {
55- try
56- {
57- if (instance == null)
58- instance = new DictEngineExternal();
59-
60-
61- } catch (Exception e) {
62- //e.printStackTrace();
63- Log.d("DictEngineExternal - getInstance:", e.getMessage());
64- }
65- }
66-
67- return instance;
68- }
69-
7053 RandomAccessFile fDic = null;
7154
7255 public DictEngineExternal()
--- trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/engine/DictEngineInternal.java (revision 55)
+++ trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/engine/DictEngineInternal.java (revision 56)
@@ -53,24 +53,7 @@
5353 public class DictEngineInternal extends DictEngine
5454 {
5555 DataInputStream fDic = null;
56-
57- public static DictEngine getInstance() {
58- if (instance == null) {
59- try
60- {
61- if (instance == null)
62- instance = new DictEngineInternal();
63-
64- } catch (Exception e) {
65- //e.printStackTrace();
66- Log.d("DictEngineInternal - getInstance:", e.getMessage());
67- }
68- }
69-
70- return instance;
71- }
7256
73-
7457 public DictEngineInternal()
7558 {
7659
--- trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/ui/main/search/SearchFragment.java (revision 55)
+++ trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/ui/main/search/SearchFragment.java (revision 56)
@@ -5,6 +5,7 @@
55 import android.view.LayoutInflater;
66 import android.view.View;
77 import android.view.ViewGroup;
8+import android.widget.ViewFlipper;
89
910 import androidx.annotation.Nullable;
1011 import androidx.lifecycle.ViewModelProviders;
@@ -19,6 +20,7 @@
1920 import com.xynotec.dictdroid.ui.base.BaseFragment;
2021 import com.xynotec.dictdroid.ui.main.search.SearchNavigator;
2122 import com.xynotec.dictdroid.ui.main.search.SearchViewModel;
23+import com.xynotec.utils.Util;
2224
2325 import javax.inject.Inject;
2426
@@ -32,6 +34,11 @@
3234 public class SearchFragment extends BaseFragment<FragmentSearchBinding, SearchViewModel>
3335 implements SearchNavigator {
3436
37+ final static int SEARCH_VIEW = 0;
38+ final static int MEAN_VIEW = 1;
39+
40+ int curView = SEARCH_VIEW;
41+
3542 @Inject
3643 SearchFragmentAdapter mSearchFragmentAdapter;
3744
@@ -40,6 +47,8 @@
4047
4148 private SearchViewModel mSearchViewModel;
4249
50+ LinearLayoutManager linearLayoutManager;
51+ ViewFlipper viewFlipper;
4352 RecyclerView rvWord;
4453 MeanView meanView;
4554
@@ -57,8 +66,12 @@
5766
5867 DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, DividerItemDecoration.VERTICAL);
5968
69+ viewFlipper = view.findViewById(R.id.viewFlipper);
70+
71+ linearLayoutManager = new LinearLayoutManager(context);
72+
6073 rvWord = view.findViewById(R.id.rvWord);
61- rvWord.setLayoutManager(new LinearLayoutManager(context));
74+ rvWord.setLayoutManager(linearLayoutManager);
6275 rvWord.addItemDecoration(dividerItemDecoration);
6376 rvWord.setAdapter(mSearchFragmentAdapter);
6477
@@ -81,4 +94,43 @@
8194 return mSearchViewModel;
8295 }
8396
97+ public void OnEditSearch(String word)
98+ {
99+ showWordListView();
100+ int posWord = mSearchFragmentAdapter.getDictEngine().OnEditSearch(word);
101+ linearLayoutManager.scrollToPositionWithOffset(posWord, 0);
102+ }
103+
104+ public void OnSubmitSearch(String word)
105+ {
106+ int posWord = mSearchFragmentAdapter.getDictEngine().OnEditSearch(word);
107+ String wordFind =mSearchFragmentAdapter.getDictEngine().GetWord(posWord);
108+ if (wordFind.compareToIgnoreCase(word) == 0)
109+ showMean(posWord);
110+ }
111+
112+ void showMean(int index) {
113+
114+ Util.hideEmulatorKeyboard(getActivity());
115+
116+ viewFlipper.setDisplayedChild(MEAN_VIEW);
117+ curView = MEAN_VIEW;
118+
119+ String word = mSearchFragmentAdapter.getDictEngine().GetWord(index);
120+ //String mean = HtmlConverter.String_htmlEncode(mSearchFragmentAdapter.getDictEngine().GetMeanWord(index));
121+
122+ //DictDbHelper.getInstance().AddHistory(word, mean);
123+
124+ //meanView.setWordMean(word, mean);
125+ }
126+
127+ void showWordListView()
128+ {
129+ if (curView != SEARCH_VIEW)
130+ {
131+ viewFlipper.setDisplayedChild(SEARCH_VIEW);
132+ curView = SEARCH_VIEW;
133+ }
134+ }
135+
84136 }
--- trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/ui/main/search/SearchFragmentAdapter.java (revision 55)
+++ trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/ui/main/search/SearchFragmentAdapter.java (revision 56)
@@ -40,6 +40,11 @@
4040 return mDictEngine.GetNumWordInDic();
4141 }
4242
43+ public DictEngine getDictEngine()
44+ {
45+ return mDictEngine;
46+ }
47+
4348 public class WordViewHolder extends BaseViewHolder
4449 implements SearchViewItemModel.SearchViewItemModelListener {
4550
--- trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/ui/main/MainActivity.java (revision 55)
+++ trunk/dictdroid2020/single/app/src/main/java/com/xynotec/dictdroid/ui/main/MainActivity.java (revision 56)
@@ -19,6 +19,7 @@
1919 import com.xynotec.dictdroid.ende.databinding.ActivityMainBinding;
2020 import com.xynotec.dictdroid.engine.DictEngine;
2121 import com.xynotec.dictdroid.ui.base.BaseActivity;
22+import com.xynotec.dictdroid.ui.main.search.SearchFragment;
2223
2324 import androidx.annotation.NonNull;
2425 import androidx.appcompat.app.ActionBarDrawerToggle;
@@ -27,6 +28,7 @@
2728
2829 import androidx.appcompat.app.AppCompatActivity;
2930 import androidx.appcompat.widget.Toolbar;
31+import androidx.fragment.app.Fragment;
3032 import androidx.lifecycle.ViewModelProviders;
3133 import androidx.navigation.NavController;
3234 import androidx.navigation.Navigation;
@@ -44,6 +46,9 @@
4446 public class MainActivity extends BaseActivity<ActivityMainBinding, MainViewModel>
4547 implements MainNavigator, SearchBar.OnSearchBarTextChange {
4648
49+ final static int SEARCH_FRAGMENT = 0;
50+
51+
4752 private AppBarConfiguration mAppBarConfiguration;
4853
4954 @Inject
@@ -173,14 +178,27 @@
173178
174179 @Override
175180 public void onTextChange(String text) {
181+ tabLayout.getTabAt(SEARCH_FRAGMENT).select();
182+ SearchFragment searchFragment = (SearchFragment)getFragment(SEARCH_FRAGMENT);
183+ searchFragment.OnEditSearch(text);
176184
177185 }
178186
179187 @Override
180188 public void onTextSubmit(String text) {
189+ text = text.trim();
181190
191+ tabLayout.getTabAt(SEARCH_FRAGMENT).select();
192+ SearchFragment searchFragment = (SearchFragment)getFragment(SEARCH_FRAGMENT);
193+ searchFragment.OnSubmitSearch(text);
182194 }
183195
196+ private Fragment getFragment(int index)
197+ {
198+ FixedIconTabsAdapter adapter = (FixedIconTabsAdapter)viewPager.getAdapter();
199+ return adapter.getItem(index);
200+ }
201+
184202 private void setupViewPager(ViewPager viewPager) {
185203 FixedIconTabsAdapter adapter = new FixedIconTabsAdapter(getSupportFragmentManager());
186204 viewPager.setAdapter(adapter);
Show on old repository browser