· 7 years ago · Jan 17, 2019, 10:32 AM
1@Override
2 public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {
3 final int itemType = getItemViewType(position);
4 if (itemType == ITEM_TYPE_ONE) {
5 final ViewHolder viewHolder = (ViewHolder) holder;
6 viewHolder.tvName.setText(arrayList.get(position).getName());
7
8 Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(viewHolder.tvSearchUrl.setText(arrayList.get(position).getSearchUrl())).getContent()); //Here is the error of the new URL
9 viewHolder.tvIcon.setImageBitmap(bitmap);
10 viewHolder.tvId.setText(arrayList.get(position).getId());
11 viewHolder.tvSearchUrl.setText(arrayList.get(position).getSearchUrl());
12 viewHolder.tvNativeUrl.setText(arrayList.get(position).getNativeUrl());
13 viewHolder.tvIcon.setOnClickListener(new View.OnClickListener() {
14 @Override
15 public void onClick(View v) {
16 Intent intent;
17 String Url = viewHolder.tvSearchUrl.getText().toString();
18 String Name = viewHolder.tvName.getText().toString();
19 intent = new Intent(context, BookmarkActivity.class);
20 intent.putExtra("WebSearchUrl", Url);
21 intent.putExtra("WebSearchName", Name);
22 v.getContext().startActivity(intent);
23 }
24 });
25
26
27 viewHolder.tvIcon.setOnLongClickListener(new View.OnLongClickListener() {
28 @Override
29 public boolean onLongClick(View v) {
30 Intent intent = new Intent(context, ActivityChangeBookmark.class);
31 String Url = viewHolder.tvSearchUrl.getText().toString();
32 String Name = viewHolder.tvName.getText().toString();
33 Integer Id = viewHolder.tvId.getId();
34 Bundle extras = new Bundle();
35 viewHolder.tvIcon.buildDrawingCache();
36 Bitmap image = viewHolder.tvIcon.getDrawingCache();
37 intent.putExtra("Url", Url);
38 intent.putExtra("Name", Name);
39 intent.putExtra("ID", Id);
40 extras.putParcelable("Image", image);
41 intent.putExtras(extras);
42 v.getContext().startActivity(intent);
43 return false;
44 }
45 });
46
47 } else if (itemType == ITEM_TYPE_TWO) {
48 ButtonViewHolder buttonViewHolder = (ButtonViewHolder) holder;
49 buttonViewHolder.imgButton.setImageResource(arrayList.get(position).getIcon());
50 }
51
52 }
53
54public class Bookmark {
55 String name, id, nativeUrl, searchUrl;
56 int icon;
57 int viewType;
58
59
60 public String getName() { return name; }
61 public void setName(String name) {
62 this.name = name;
63 }
64
65 public int getIcon() { return icon; }
66 public void setIcon(int icon) {
67 this.icon = icon;
68 }
69
70 public String getId(){
71 return id;
72 }
73
74 public void setId(String id) {
75 this.id = id;
76 }
77
78 public String getNativeUrl() {
79 return nativeUrl;
80 }
81
82 public void setNativeUrl(String nativeUrl) {
83 this.nativeUrl = nativeUrl;
84 }
85
86 public String getSearchUrl() {
87 return searchUrl;
88 }
89
90 public void setSearchUrl(String searchUrl) {
91 this.searchUrl = searchUrl;
92 }
93 public int getViewType() {
94 return viewType;
95 }
96
97 public void setViewType(int viewType) {
98 this.viewType = viewType;
99 }
100
101
102 @Override
103 public String toString() {
104 return "Bookmark{" +
105 "name='" + name + ''' +
106 ", icon='" + icon + ''' +
107 ", id='" + id + ''' +
108 ", nativeUrl='" + nativeUrl + ''' +
109 ", searchUrl='" + searchUrl + ''' +
110 '}';
111 }
112}
113
114public class ActivityChangeBookmark extends AppCompatActivity {
115 private ArrayList<String> listItems = new ArrayList<String>();
116 private RecyclerView recyclerView;
117 Button saveBookmark, cancelBookmark;
118 TextView name, url;
119 ImageView icon, mIcon;
120 EditText mName, mUrl, mID;
121 public static final String Save_Bookmark = "Save_Bookmark";
122 String Url, Name;
123 Integer Id;
124 MyAdapter myAdapter;
125 BookmarkDB bookmarkDB;
126 ButtonRobotoMedium removeBookmark, sendToHomeScreen;
127 ArrayList<Bookmark> arrayList = new ArrayList<>();
128
129
130@Override
131protected void onCreate(@Nullable Bundle savedInstanceState) {
132 super.onCreate(savedInstanceState);
133 setContentView(R.layout.activity_change_bookmark);
134 saveBookmark = findViewById(R.id.btnSave);
135 name = findViewById(R.id.tvNameEdit);
136 url = findViewById(R.id.tvURLEdit);
137 recyclerView = findViewById(R.id.myRecyclerView);
138 icon = findViewById(R.id.ivFavIcon);
139 mName = findViewById(R.id.etNameEdit);
140 mUrl = findViewById(R.id.etURLEdit);
141 sendToHomeScreen = findViewById(R.id.btnAddIconToDeviceScreen);
142 name.setVisibility(View.GONE);
143 url.setVisibility(View.GONE);
144 bookmarkDB = new BookmarkDB(getApplicationContext());
145 Intent intent = getIntent();
146 myAdapter = new MyAdapter(getApplicationContext(), arrayList);
147
148 Bundle extras = intent.getExtras();
149 if (extras != null) {
150 Url = intent.getExtras().getString("Url");
151 Name = intent.getExtras().getString("Name");
152 Id = intent.getExtras().getInt("ID");
153
154 Bitmap bitmap = intent.getExtras().getParcelable("Image");
155 mName.setText(Name);
156 mUrl.setText(Url);
157
158 icon.setImageBitmap(bitmap);
159 removeBookmark.setOnClickListener(new View.OnClickListener() {
160 @Override
161 public void onClick(View v) {
162 bookmarkDB.deleteName(Id, Name);
163 myAdapter.notifyDataSetChanged();
164 finish();
165 }
166 });
167 }
168 else {
169 removeBookmark.setVisibility(View.GONE);
170 sendToHomeScreen.setVisibility(View.GONE);
171 icon.setImageResource(R.drawable.user_bookmark);
172 mName.setText("");
173 mUrl.setText("");
174 }
175
176
177 saveBookmark.setOnClickListener(new View.OnClickListener() {
178 @Override
179 public void onClick(View v) {
180 saveData();
181 myAdapter.notifyDataSetChanged();
182 finish();
183 }
184 });
185
186public void saveData() {
187 Random r = new Random();
188 int low = 14;
189 int high = 100;
190 int result = r.nextInt(high-low) + low;
191 bookmarkDB.addBookmark(result, mName.getText().toString(), false, "https://www.google.com/s2/favicons?domain=" + mUrl.getText().toString(), mUrl.getText().toString(), "http://" + mUrl.getText().toString());
192}
193
194public class BookmarkDB extends SQLiteOpenHelper {
195 public static final String DBNAME = "bookmarks.db"; // The name of the
196 database file
197 public static final int DBVERSION = 1; // The Database version
198
199 public static final String TBL_BOOKMARK = "bookmark";
200 public static final String COL_ID = BaseColumns._ID; // equates to _id
201 public static final String COl_NAME = "name";
202 public static final String COl_HIDDEN = "hidden";
203 public static final String COL_ICON = "icon";
204 public static final String COL_NATIVEURL = "nativeurl";
205 public static final String COL_SEARCHURL = "searchurl";
206
207 SQLiteDatabase mDB;
208
209 public BookmarkDB(Context context) {
210 super(context, DBNAME, null, DBVERSION);
211 mDB = this.getWritableDatabase();
212 }
213
214 @Override
215 public void onCreate(SQLiteDatabase db) {
216
217 // The SQL to be used to create the table
218 String crt_bookmark_tbl_sql = "CREATE TABLE IF NOT EXISTS " + TBL_BOOKMARK + "(" +
219 COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
220 COl_NAME + " TEXT, " +
221 COl_HIDDEN + " INTEGER, " +
222 COL_ICON + " TEXT, " +
223 COL_NATIVEURL + " TEXT," +
224 COL_SEARCHURL + " TEXT" +
225 ")";
226 db.execSQL(crt_bookmark_tbl_sql); // CREATE THE TABLE
227
228 }
229
230
231 @Override
232 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
233 db.execSQL("DROP IF TABLE EXISTS " + DBNAME);
234 onCreate(db);
235 }
236
237 public long addBookmark(long id, String name, boolean hidden, String icon, String nativeurl, String searchurl) {
238 ContentValues cv = new ContentValues();
239
240 cv.put(COl_NAME,name);
241 cv.put(COl_HIDDEN,hidden);
242 cv.put(COL_ICON,icon);
243 cv.put(COL_NATIVEURL,nativeurl);
244 cv.put(COL_SEARCHURL,searchurl);
245 // uses the convenience insert method that builds the SQL
246 return mDB.insert(TBL_BOOKMARK,null,cv);
247 }
248 public ArrayList<Bookmark> getAllBookmarks() {
249 ArrayList<Bookmark> rv = new ArrayList<>();
250 Cursor csr = mDB.query(TBL_BOOKMARK,null,null,null,null,null, null);
251 while (csr.moveToNext()) {
252 Bookmark b = new Bookmark();
253 b.setId(csr.getString(csr.getColumnIndex(COL_ID)));
254 b.setName(csr.getString(csr.getColumnIndex(COl_NAME)));
255 b.setIcon(csr.getInt(csr.getColumnIndex(COL_ICON)));
256 b.setViewType(csr.getInt(csr.getColumnIndex(COl_NAME)));
257 b.setNativeUrl(csr.getString(csr.getColumnIndex(COL_NATIVEURL)));
258 b.setSearchUrl(csr.getString(csr.getColumnIndex(COL_SEARCHURL)));
259 rv.add(b);
260 }
261 return rv;
262 }