Skip to content

Commit 563aaf3

Browse files
author
piclabsstudio
committed
Add MSearchbar
1 parent 212e88c commit 563aaf3

File tree

65 files changed

+1843
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+1843
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ you could customize following UI controls in your Android application
3333
* [ToggleButton](https://github.com/dvinfosys/CustomWidgets/blob/master/app/src/main/java/com/dvinfosys/WidgetsExample/Fragments/ToggleButtonFragment.java)
3434
* [CircleImageView](https://github.com/dvinfosys/CustomWidgets/blob/master/app/src/main/java/com/dvinfosys/WidgetsExample/Fragments/ImageviewFragment.java)
3535
* [CustomSeekBar](https://github.com/dvinfosys/CustomWidgets/wiki/CustomSeekBar)
36-
* [VPVideoPlayer](https://github.com/dvinfosys/CustomWidgets/wiki/VPVideoPlayer)
3736
* [ToastView](https://github.com/dvinfosys/CustomWidgets/wiki/ToastView)
3837
* [Number Counter](https://github.com/dvinfosys/CustomWidgets/wiki/Number-Counter)
3938
* [CountdownView](https://github.com/dvinfosys/CustomWidgets/wiki/CountdownView)
@@ -47,6 +46,7 @@ you could customize following UI controls in your Android application
4746
* [RecyclerResize](https://github.com/dvinfosys/CustomWidgets/blob/master/app/src/main/java/com/dvinfosys/WidgetsExample/Fragments/RecyclerResizeFragment.java)
4847
* [InputCode (Pincode)](https://github.com/dvinfosys/CustomWidgets/blob/master/app/src/main/java/com/dvinfosys/WidgetsExample/Fragments/InputCodeFragment.java)
4948
* [StickerView](https://github.com/dvinfosys/CustomWidgets/blob/master/app/src/main/java/com/dvinfosys/WidgetsExample/Fragments/StickerViewFragment.java)
49+
* [MSearchBar](https://github.com/dvinfosys/CustomWidgets/blob/master/app/src/main/java/com/dvinfosys/WidgetsExample/Fragments/MSearchbarFragment.java)
5050

5151
## Author
5252

app/src/main/java/com/dvinfosys/WidgetsExample/Activity/HomeActivity.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.dvinfosys.WidgetsExample.Fragments.FoldingCellFragment;
2525
import com.dvinfosys.WidgetsExample.Fragments.ImageviewFragment;
2626
import com.dvinfosys.WidgetsExample.Fragments.InputCodeFragment;
27+
import com.dvinfosys.WidgetsExample.Fragments.MSearchbarFragment;
2728
import com.dvinfosys.WidgetsExample.Fragments.NumberCounterFragment;
2829
import com.dvinfosys.WidgetsExample.Fragments.PaperOnboardingFragment;
2930
import com.dvinfosys.WidgetsExample.Fragments.ProgressViewFragment;
@@ -144,6 +145,8 @@ public boolean onNavigationItemSelected(MenuItem item) {
144145
fragment = new InputCodeFragment();
145146
} else if (id == R.id.nav_sticker) {
146147
fragment = new StickerViewFragment();
148+
}else if (id==R.id.nav_msearchbar){
149+
fragment=new MSearchbarFragment();
147150
}
148151
if (fragment != null) {
149152
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.dvinfosys.WidgetsExample.Fragments;
2+
3+
import android.os.Bundle;
4+
import android.support.v4.app.Fragment;
5+
import android.view.LayoutInflater;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
9+
import com.dvinfosys.WidgetsExample.R;
10+
import com.dvinfosys.widgets.MaterialSearchbar.MSearchBar;
11+
12+
public class MSearchbarFragment extends Fragment implements MSearchBar.OnSearchActionListener{
13+
14+
private MSearchBar searchBar;
15+
16+
@Override
17+
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
18+
View v = inflater.inflate(R.layout.fragment_msearchbar, container, false);
19+
searchBar = v.findViewById(R.id.searchBar);
20+
searchBar.setOnSearchActionListener(this);
21+
searchBar.setCardViewElevation(10);
22+
return v;
23+
}
24+
25+
@Override
26+
public void onSearchStateChanged(boolean enabled) {
27+
28+
}
29+
30+
@Override
31+
public void onSearchConfirmed(CharSequence text) {
32+
33+
}
34+
35+
@Override
36+
public void onButtonClicked(int buttonCode) {
37+
switch (buttonCode) {
38+
case MSearchBar.BUTTON_NAVIGATION:
39+
break;
40+
case MSearchBar.BUTTON_SPEECH:
41+
searchBar.disableSearch();
42+
break;
43+
case MSearchBar.BUTTON_BACK:
44+
searchBar.disableSearch();
45+
break;
46+
}
47+
}
48+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
xmlns:tools="http://schemas.android.com/tools"
5+
android:layout_width="match_parent"
6+
android:layout_height="match_parent"
7+
android:orientation="vertical"
8+
android:padding="16dp"
9+
tools:context=".Fragments.MSearchbarFragment">
10+
11+
<com.dvinfosys.widgets.MaterialSearchbar.MSearchBar
12+
android:id="@+id/searchBar"
13+
android:layout_width="match_parent"
14+
android:layout_height="40dp"
15+
app:ms_navIconEnabled="true"
16+
app:ms_placeholder="Google Play" />
17+
18+
</LinearLayout>

app/src/main/res/menu/activity_home_drawer.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,5 +102,8 @@
102102
android:id="@+id/nav_sticker"
103103
android:title="@string/menu_sticker" />
104104

105+
<item android:id="@+id/nav_msearchbar"
106+
android:title="@string/menu_msearch"/>
107+
105108
</group>
106109
</menu>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,5 +89,6 @@
8989
<string name="menu_input_code">InputCode</string>
9090
<string name="menu_sticker">StickerView</string>
9191
<string name="font_name">Smoothy.otf</string>
92+
<string name="menu_msearch">MSeachbar</string>
9293

9394
</resources>

libraries/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
targetSdkVersion 28
99
versionCode 1
1010
versionName "1.0"
11-
1211
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
12+
vectorDrawables.useSupportLibrary = true
1313
}
1414

1515
buildTypes {
@@ -32,6 +32,8 @@ dependencies {
3232
implementation 'com.android.support:design:28.0.0'
3333
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
3434
implementation 'com.android.support:support-v4:28.0.0'
35+
implementation 'com.android.support:recyclerview-v7:28.0.0'
36+
implementation 'com.android.support:cardview-v7:28.0.0'
3537
testImplementation 'junit:junit:4.12'
3638
androidTestImplementation 'com.android.support.test:runner:1.0.2'
3739
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.dvinfosys.widgets.MaterialSearchbar;
2+
3+
import android.support.v7.widget.RecyclerView;
4+
import android.view.LayoutInflater;
5+
import android.view.View;
6+
import android.view.ViewGroup;
7+
import android.widget.ImageView;
8+
import android.widget.TextView;
9+
10+
import com.dvinfosys.widgets.R;
11+
12+
public class DefaultSuggestionsAdapter extends SuggestionsAdapter<String, DefaultSuggestionsAdapter.SuggestionHolder> {
13+
private SuggestionsAdapter.OnItemViewClickListener listener;
14+
15+
public DefaultSuggestionsAdapter(LayoutInflater inflater) {
16+
super(inflater);
17+
}
18+
19+
public void setListener(SuggestionsAdapter.OnItemViewClickListener listener) {
20+
this.listener = listener;
21+
}
22+
23+
@Override
24+
public int getSingleViewHeight() {
25+
return 50;
26+
}
27+
28+
@Override
29+
public DefaultSuggestionsAdapter.SuggestionHolder onCreateViewHolder(ViewGroup parent, int viewType) {
30+
View view = getLayoutInflater().inflate(R.layout.item_m_searchbar, parent, false);
31+
return new DefaultSuggestionsAdapter.SuggestionHolder(view);
32+
}
33+
34+
@Override
35+
public void onBindSuggestionHolder(String suggestion, SuggestionHolder holder, int position) {
36+
holder.text.setText(getSuggestions().get(position));
37+
}
38+
39+
public interface OnItemViewClickListener {
40+
void OnItemClickListener(int position, View v);
41+
42+
void OnItemDeleteListener(int position, View v);
43+
}
44+
45+
class SuggestionHolder extends RecyclerView.ViewHolder {
46+
private final TextView text;
47+
private final ImageView iv_delete;
48+
49+
public SuggestionHolder(final View itemView) {
50+
super(itemView);
51+
text = itemView.findViewById(R.id.text);
52+
iv_delete = itemView.findViewById(R.id.iv_delete);
53+
itemView.setOnClickListener(new View.OnClickListener() {
54+
@Override
55+
public void onClick(View v) {
56+
v.setTag(getSuggestions().get(getAdapterPosition()));
57+
listener.OnItemClickListener(getAdapterPosition(), v);
58+
}
59+
});
60+
iv_delete.setOnClickListener(new View.OnClickListener() {
61+
@Override
62+
public void onClick(View v) {
63+
int position = getAdapterPosition();
64+
if (position > 0 && position < getSuggestions().size()) {
65+
v.setTag(getSuggestions().get(getAdapterPosition()));
66+
listener.OnItemDeleteListener(getAdapterPosition(), v);
67+
}
68+
}
69+
});
70+
}
71+
}
72+
}

0 commit comments

Comments
 (0)