Удалить или отфильтровать повторяющиеся события праздников из базы данных календаря - Android - PullRequest
0 голосов
/ 03 мая 2020

Я получаю все события календаря, включая праздничные дни из Android База данных календаря с использованием контент-провайдеров. Поскольку я вошел в систему с двумя разными учетными записями Gmail , Запрос возвращает дубликат праздничных дней . Я хочу избежать дублирования праздников, и я пытаюсь сделать то же самое, внося изменения в Query.

Можно ли избежать дублирования праздников путем внесения изменений в запрос? Может ли кто-нибудь помочь мне с правильным запросом, который по умолчанию позволяет избежать дублирования праздников? Или есть другое решение для этой проблемы?

Ниже мой код:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String[] PROJECTION = { CalendarContract.Events._ID,
            CalendarContract.Events.TITLE ,
            CalendarContract.Events.OWNER_ACCOUNT,
            CalendarContract.Events.ACCOUNT_NAME,
            CalendarContract.Events.ACCOUNT_TYPE};

    Cursor cursor = getContentResolver().query(
            CalendarContract.Events.CONTENT_URI, PROJECTION, null, null,
            null);


    int titleIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events.TITLE);
    int eventIdIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events._ID);
    int ownerAccountIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events.OWNER_ACCOUNT);
    int accountNameIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events.ACCOUNT_NAME);
    int accountTypeIndex = cursor.getColumnIndexOrThrow(CalendarContract.Events.ACCOUNT_TYPE);

    String[] result = new String[cursor.getCount()];
    while (cursor.moveToNext()) {
        String name = cursor.getString(titleIndex);
        String id = cursor.getString(eventIdIndex);
        String ownerAccount = cursor.getString(ownerAccountIndex);
        String accountName = cursor.getString(accountNameIndex);
        String accountType = cursor.getString(accountTypeIndex);
        result[cursor.getPosition()] = name + "(" + id + ")"+" ownerAccount->"+ownerAccount+", accountName-->"+accountName+" accountType->"+accountType;

        Log.d("AllDataLog","* result->"+result[cursor.getPosition()]);
    }
    cursor.close();
}
}
...