InfoWindowAdapter.java: использует или отменяет устаревший API - PullRequest
0 голосов
/ 14 ноября 2018

Как и в названии, у меня возникла эта проблема, и я искал примерно 2 часа для ответа, но ни один из тех, которые я пробовал, не работал; /

Вот класс:

package com.example.michalwolowiec.meetup;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.Marker;

import java.util.ArrayList;

public class MeetUpInfoWindowAdapter implements GoogleMap.InfoWindowAdapter {
    private final View mWindow;
    private Context context;
    private ArrayList<User> users;

    public MeetUpInfoWindowAdapter(Context context, ArrayList<User> users) {
        this.context = context;
        this.users = users;
        mWindow = LayoutInflater.from(context).inflate(R.layout.event_info_window, null);
    }

    private void renderWindowInfo(Marker marker, View view){
        String title = marker.getTitle();
        TextView titleTextView = view.findViewById(R.id.titleTextView);

        if(!title.equals("")) titleTextView.setText(title);

        String snippet = marker.getSnippet();
        TextView snippetTextView = view.findViewById(R.id.snippetTextView);

        if(!title.equals("")) snippetTextView.setText(snippet);

        //Since markers doesn't have an extra Variable to store images I need to iterate
        //through all users to get the porper photo
        int photo = 0;
        ImageView photoImageView = view.findViewById(R.id.photoImageView);
        for(int i = 0; i < users.size(); i++){
            User user = users.get(i);
            if(title.equals("Username: " + user.getUsername())){
                photo = user.getProfilePhoto();
                break;
            }
        }

        if(photo!=0)
            photoImageView.setImageDrawable(context.getResources().getDrawable(photo));
    }

    @Override
    public View getInfoWindow(Marker marker) {
        renderWindowInfo(marker, mWindow);
        return mWindow;
    }

    @Override
    public View getInfoContents(Marker marker) {
        renderWindowInfo(marker, mWindow);
        return mWindow;
    }
}

Лично я не думаю, что я использую что-то, что устарело.Даже IDE не кричит, что я такой.

Вот мои зависимости:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.jakewharton:butterknife:9.0.0-rc1'
    implementation 'com.google.android.gms:play-services-maps:16.0.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
    implementation 'com.google.android.gms:play-services-location:16.0.0'
    implementation 'com.github.david-serrano:locationprovider:1.1'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:support-media-compat:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    compileOnly 'org.projectlombok:lombok:1.18.4'
    annotationProcessor 'org.projectlombok:lombok:1.18.4'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

Мне пришлось добавить

реализация 'com.android.support: support-v4: 28.0.0 '

, потому что я думаю, что библиотека, которую я использую для определения местоположения, использует ее.КСТАТИ.Поскольку я еще не разработчик, вы, ребята, порекомендуете хорошую библиотеку локаций для Android?

Заранее спасибо

...